简单快捷使用Git
1、简介和安装
Git是世界上目前最先进的分布式版本控制系统。
安装:https://git-for-windows.github.io下载。
设置姓名和email:
git config --global user.name "Yaohui"
git config --global user.email "1250661383@qq.com@example.com"
2、版本库
2.1、创建:创建一个空目录
mkdir git
cd git
pwd 用于显示当前目录
2.2 用git init(初始化) 把这个目录变成git可以管理的仓库,如果目录地下没有.git(版本库)的目录,因为这个目录是默认隐藏的,用 ls -ah显示。
把一个文件放入Git仓库第一步:
Git add 文件名 告诉Git,把文件添加到仓库。第二步:
Git commit -m 提交到仓库。-m后面输入本次提交的说明
Git status 查看仓库状态。
Git diff(difference) 查看具体修改的内容。
Git log 查看历史记录。
Git reset 切换、退回版本。HEAD表示最新版本
Git reflog 记录用户每一次命令。
Git与SVN最大的不同之处就是有暂存区。
.git(版本库)存放最重要的是stage(或者叫index)暂存区。自动创建一个master分支,以及指向master的指针HEAD,commit就是往分区上提交。
理解为需要提交的文件修改通通放在暂存区,然后一次性提交暂存区的所有修改到分支,提交后没有对工作区做修改的话,那么工作区就是干净的。
3、管理修改
删除、增加、修改一行都属于修改。
Git checkout -- 文件名 就是把该文件在工作区的修改全部撤销。分为两种:一种是修改没有放到暂存区的话撤回到版本库的状态。第二种是已经存放到暂存区,撤回到暂存区后的状态。也可以理解为最近一次 Git commit 或者 Git add时的状态。
Git rm 删除文件。
4、远程仓库
4.1 创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "1250661383@qq.com@example.com"
里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
4.2 登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
GitHub允许添加多个key。
首先,登陆GitHub,然后,在右上角找到“New repository”按钮,创建一个新的仓库:
在Repository name填入1507,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令
Git remote add 远程仓库名字(默认叫做origin) git@github.com:自己github账户名/本地仓库名字(yaohui.git)
git push -u(会吧本地分支和远程分支连接起来)本地仓库内容推送远程仓库。(git push 远程仓库名字 master)
git remote add 远程仓库名称 关联远程仓库
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;第一次推送加上 -u
5、分支管理
git分支与众不同,无论创建、切换或删除分支,一秒就可以完成,不论大小。
每次提交Git都会把它们串成一个时间线,时间线就叫做分支。
创建dev分支,然后切换到dev分支:
git branch dev 创建 git branch 查看当前分支
git checkout -b(表示创建并切换) dev 切换
git merge dev 合并
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
强制删除分支:git branch -D <name>
Git远程分支操作
查看全部分支:git branch -a
删除远程分支:git push origin --delete <name>
git push origin :<name>
6、码云
使用码云和使用GitHub类似,我们在码云上注册账号并登录后,需要先上传自己的SSH公钥。选择右上角用户头像 -> 菜单“修改资料”,然后选择“SSH公钥”,填写一个便于识别的标题,然后把用户主目录下的.ssh/id_rsa.pub文件的内容粘贴进去:
我们在码云上创建一个新的项目,选择右上角用户头像 -> 菜单“控制面板”,然后点击“创建项目”,名称最好与本地库名保持一致。
使用命令git remote add把它和码云的远程库关联,正常地用git push和git pull推送了。
git remote -v 查看远程库信息。远程库码云中叫做gitee。剩下操作和远程命令一样。
7、忽略文件
7.1 忽略操作系统自动生成的文件,比如缩略图
7.2忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库。
7.3忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件
8、配置别名
简单快捷使用Git的更多相关文章
- 简单快捷好用的vim配置和终端配置推荐
vim 配置实用spf13-vim,安装方便简单快捷,极力推荐. 另外oh-my-zsh 终端配置很好,与之搭配使用效果更佳. 安装都很简单,一个脚本搞定, 都是在gitHub上开源的,自行搜索,这里 ...
- .net下简单快捷的数值高低位切换
.net下简单快捷的数值高低位切换 做网络通讯中数值传输是很普遍的事情,但数值的存储在不平台和硬件上存储方式都不一样,主要有两大类分别是高位和低位存储:而.net平台下是低位存储,通过.net提供的函 ...
- 简单快捷地测试 JPush API
随着 JPush API v3版本的推出,加上之前开放的 Report API,JPush API 逐渐切换为比较好的符合 REST API 的规范,从而也很容易地使用一般的 HTTP/REST 工具 ...
- 右键快捷打开Git Bash here失败
右键快捷打开Git Bash here失败,提示: Error: Could not fork child process: Resource temporarily unavailable (-1) ...
- percona-xtrabackup-8.0.7简单快捷使用
percona-xtrabackup-8.0.7简单快捷使用 # 参考资料: https://blog.csdn.net/vkingnew/article/details/83012316 # 环境: ...
- jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)
最近在学习asp.netMVC,发现其中的验证方式书写方便快捷,应用简单,易学好懂. 验证方式基于jQuery的validate 验证方式,也可以说是对jQuery validate的验证方式的扩展, ...
- goss 简单快捷的服务器测试检验工具
goss 是一个简单.快捷的服务器测试检验工具,dgoss 是一个包装可以支持基于容器的开发模式 同时可以暴露测试结果为一个http endpoint,比较方便. 使用goss容器运行 使用数据卷的模 ...
- 无脑简单 命令升级git Centos
yum remove git yum install zlib (系统默认已经装上) yum install zlib-devel ># wget https://github.com/git/ ...
- 简单 常用的git命令
常用的git命令 git pull 获取最新 git add . 提交所有 git commit -m “我的注释” git status 查看状态 git push origin master ...
随机推荐
- Java学习笔记34(sql基础 :增删改查1)
create database qy97;/*创建数据库*/ use qy97; /*使用数据库 use 数据库名*/ show tables; /*查看所有的表*/ select database( ...
- 百战程序员-xml
1.用自己的语言说出,为什么需要XML? XML 是一种元标注语言,该语言提供一种描述结构数据的格式.这有助于更精确地声明内容,方便跨越多种平台的更有意义的搜索结果.此外,XML 将起用新一代的基于 ...
- 软件工程 week 05
关于 石墨文档客户端 的案例分析 作业地址:https://edu.cnblogs.com/campus/nenu/2016CS/homework/2505 一.调研测评 测试平台:Windows 1 ...
- Arduino SD卡 列出文件
/* SD卡测试 这个例子展示了如何使用实用程序库 sd库是基于获取您的SD卡的信息. 非常有用的测试卡,当你不确定它是否工作. 电路: *附在SPI总线上的SD卡如下: * MOSI引脚11上的Ar ...
- cannot find package "context"
导入 github.com/go-sql-driver/mysql 和 database/sql 时,报cannot find package "context"的错误因为go1 ...
- Java_初入IO流_字符流_Write-Read_小笔记
package IO; import java.io.FileWriter; import java.io.IOException; class File_Writer { public static ...
- 推荐一些关于学习Html Css和Js的书吗?
前端易学易懂,随着移动互联网的日益兴起,it行业对于前端的需求也在不断的提高,那么从前端小白修炼成为前端大神的这个过程之中,一些必备的枕边书也是必不可少的. 第一本,入门<Head first ...
- 安装包安装npm
在阿里云机器上centos7安装npm可以直接yum安装,然后基于镜像的时候安装不了,直接使用安装包安装,记录一下: 官网下载地址:https://nodejs.org/en/download/ #! ...
- xpython在Windos下的安装及简单的文本打开、保存
前几天写自动化部署脚本,用的是paramiko和shell相结合,paramiko可是实现ssh登录,文件及文件夹的上传下载,这些功能,然后一直想自己写个东西出来,于是就想把这些功能我把他放到图形化界 ...
- 如果debug调试的时候中断总是停在析构函数的delete[] p上
如果debug调试的时候中断总是停在析构函数的delete[] p上,那可能 有两种情况: 1.调用析构函数的这个对象没有被分配空间,先找到调用调用析构函数出错的这个对象, 然后查看它是否被分配了空间 ...