工作中常用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