工作中常用Git命令总结

2019-06-14

提交远程仓库流程

1.将本地修改文件提交到缓存区

git add .

2.将缓存区文件提交到当前分支并添加备注

git commit -m "remarks"

3.拉取远程仓库代码(⚠️多人协作下必备操作)

git pull origin <branchName>

4.如果存在冲突,则解决冲突后,若需要新的结点,则使用2提交;否则使用以下命令修改当前提交

git commit --amend

5.将本地commit提交远程仓库

git push origin <branchName>

项目测试

1.将代码提到staging环境部署的分支(通常是dev)

git cherry-pick <versionNo>

⚠️使用cherry-pick是因为dev分支存在各个同事同时在开发的提交,很可能是下次上线不上的或者开发不完全的,为了避免每次merge都会有一大堆问题,直接使用cherry-pick简单粗暴。

2.代码开发完成,需要提测给测试同学(部署test分支)
代码合并参考项目上线第3点

项目上线

1.合并多个commit

git rebase -i <versionNo>

a)将需要合并的commit版本号前的pick改为s(第一个pick需保留)
b)若存在冲突,则修改冲突后,提交修改

git add .

继续后续合并

git rebase --continue

c)若没有冲突或冲突已经解决,则会将所有commit的备注依次列出,保留一个备注后,依次按Esc => :wq(:表示输入命令,w表示保存,q表示退出)

d)放弃合并

git rebase --abort

2.代码review

3.代码合并

a)若是远程仓库合并,则可以提交一个Merge Request。仓库系统会自动diff两个分支的代码改动地方,若是没有冲突则可以点击merge按钮自动合并。若是有冲突,则本地修改冲突再提交修改后的代码到仓库。

b)若是本地合并

b.1)拉取远程分支到本地(分支为开发后需要合并的分支)
【可选择某个commit作为新分支的最后节点】

git checkout -b <branchName> origin/<branchName> <commit>

b.2)拉取需要被合并的分支(通常是master)保证本地代码最新

git pull origin master

b.3)合并分支到master

git merge --no-ff -m "remark" master

⚠️ –no-ff会正常合并同时在master上生成一个新节点。

4.代码提交远程仓库

本地开发

1.克隆仓库代码

git clone <git repo url>

2.创建新分支

git checkout -b <branchName>

删除分支

git branch -d <branchName>

⚠️-D 强制删除

3.保存工作区状态

git stash

恢复当前工作区状态

git stash pop

查看保存的状态

git stash list

3.撤销修改

a)丢弃工作区修改

git checkout -- ./<fileName>

b)回退到某个版本(将丢弃该版本号后的所有commit)

git reset --hard <versionNo>

c)撤销某个commit并将改动放到缓存区

git reset --soft <versionNo>

git仓库迁移(保留所有commit记录)

1.在本地空文件夹中,克隆一份原仓库裸版本。

> git clone --bare <git地址>

2.创建新仓库并拷贝地址

3.以镜像推送的方式将代码上传到新仓库中。

> cd new-project.git
> git push --mirror <git地址>

4.删除本地代码及原有仓库文件
5.将新仓库代码clone到本地

> git clone <git地址>

其他常用命令

1.查看远程仓库地址

git remote -v

2.查看本地及远程所有分支及当前版本

git branch -a -v

3.查看使用过的命令记录

git reflog

4.查看提交记录

git log