Git 版本控制常用命令

Jneee 于 2020-05-30 发布

整理工作场景下常用的git命令

一、基本命令

# git bash内创建本地 git 仓库:
$ cd /home/object
$ git init
# 添加文件
$ git add readme.md # 跟踪整个文件夹可以使用 git add .
$ git commit -m'说明' # 提交 add 到的文件,-m 适合简短的说明,一般不加。

$ git push origin master #origin是默认远程仓库名,master是工作主分支
$ git status #查看当前文件修改状态
$ git diff #(可以跟个文件名) 查看文件的 difference
$ git log # 查看提交历史,如果版本回退过,之前的历史就需要 git reflog

二、进阶命令

$ git log #查看最近三次 commit 内容
$ git reset --hard HEAD^ #回退到上一版本,HEAD 表示当前版本,后面跟上数字表示回退n个版本
$ git reset HEAD file #把暂存区的修改撤销掉
$ git reflog #查看每次的命令(包括回滚操作的)
$ cat readme.md #追踪这个文件的修改记录
$ git checkout -- readme.md #readme.md 工作区的修改全部撤销
$ git checkout -- test.txt #错删文件后恢复
$ git commit --amend [--no-edit] # 把最近的修改合并到上次的commit里,可选[不改说明]

三、远程仓库的本地操作

参考https://code.aliyun.com/help/ssh/README

$ cat ~/.ssh/id_rsa.pub #判断本地是否已有 sshkey
$ ssh-keygen -t rsa -C "youremail@example.com" #创建一个key,接下来可以一路enter 不用密码。
$ cat ~/.ssh/id_rsa.pub #获取key,也可以到目录下打开复制。
$ git remote add origin <git@项目地址> #添加远程仓库
$ git push -u origin master
$ git remote set-url origin <new-link>

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

四、分支管理

Git鼓励大量使用分支:

$ git checkout -b dev # 创建并切换到,-b相当于branch。
$ git branch dev #创建分支,不跟参数为查看当前分支信息
$ git merge dev #合并指定分支到当前分支
$ git branch -d <name> #删除分支

遇到分支合并时文件冲突需要手动解决!如果在使用 git merge dev时候都会提示冲突。需要手动修改冲突文件。

一般开发场景不鼓励直接在主分支修改,而是创建一个分支,改好了切到主分支使用 git merge 指令。