从 SVN 切换到 git,踩了许多坑,总结一下 git 的常用命令以及管理项目的流程。
1. 一般公司会有一个远程库,第一步是要克隆远程库到本地
git clone xxx (xxx 为远程库地址)
2. 这时本地库跟远程库的代码是一样的,而当我们要开发新功能或者改bug时,就得在本地新建分支
git checkout -b dev (dev 为本地分支名)
注意:git checkout -b dev 是 git branch dev (新建分支) 与 git checkout dev (切换分支)合并,意思是新建并切换到dev上
3. 接下来就是敲代码...敲完要保存并提交到本地库
git add . (把修改加入stage中,其中 add . 指的是 add 所有修改的代码)
git commit -m 'xxxx' (提交修改到本地 dev 分支,其中 xxxx 指的是提交时的注释)
4. 提交到本地库以后还要将改变提交到远程库
git push origin dev (dev 为远程库的分支名,一般跟本地库分支名是一样的)。此时我们并没有在远程库新建过分支,在远程库找不到 dev 分支时,这个命令会自动在远程库新建 dev 分支,很方便。
5. 在远程库申请分支合并请求,将远程库的分支与 master 合并,合并完以后没问题的话本地库与远程库的分支就可以删掉了
删除本地分支: git branch -d dev
删除远程分支:git push origin --delete dev (一般不用自己删,合并完可以选择自动删除)
删除本地所有分支(除了master):git branch | grep -v "master" | xargs git branch -d
6. 再次新建分支前,先将本地 master 更新一下,与远程库同步。
git fetch origin master (拉取远程库master)
git diff master (将本地代码与远程代码进行比较)
git merge origin master (本地 master 与 远程 master 合并)
或者直接 git pull origin master,一步到位。关于git fetch 与 git pull 的区别,网上有很多解释,一般的说法是 git pull 相当于 git fetch + git merge,