本文分为两大块内容,第一部分为git中经常出现的一些情形会用到的一些的一些命令,第二部分为从创建一个分支到推送等的完整正确顺序,注意这里的顺序很重要,千万不能乱。
第一部分:
创建分支
gitcheckout -b<branch_name>
上述命令创建一个新的分支 name,并且切换到新的分支,这里的-b
参数表示创建并切换。
如果仅仅是创建一个新的分支而不切换到新分支,则直接使用git branch <branch_name>
命令。
git branch <branch_name>
在分支之间切换
git checkout <branch_name>
查看分支
git branch
上述命令会列出所有的分支,该命令只会列出本地分支,如果希望查看所有分支(包含服务器上的),使用参数-a
。
git branch -a
远程分支会以红色字体显示。
仅查看远程分支:
git branch -r
分支合并
首先切换到主分支
git checkout master
然后执行merge
命令合并分支
git merge <branch_name>
这样就把name分支合并到主分支了。
关于 Fast Forward 相关内容,感兴趣可以参考 Git - Fast Forward 和 no fast forward
分支删除
git branch -d <branch_name>
这里的-d
(--delete
)用于删除已经merge
的分支。
如果要丢弃一个没有合并的分支,使用命令
git branch -D <branch_name>
。
对于远程分支的删除,有两种方式:
使用
--delete
参数git push origin --delete <branch_name>
推送空分支(相当于删除)
git push origin :<branch_name>
推送空分支(相当于删除)
git push origin :<branch_name>
修改分支名称
git branch -m <old_name> <new_name>
暂存工作现场
当在一个分支上进行操作,但是修改尚不能提交,这时候需要创建一个新的分支解决更加紧急的任务时,可以将当前分支工作状态暂存起来
git stash
这时可以放心的切换到其它分支进行操作,当完成之后,使用git checkout
回到当前分支,使用git stash list
命令查看暂存了哪些现场。
$ git stash list
stash@{0}: WIP on master: f32abab 增加composer文件
可以看到这里暂存了一个名为 stash@{0} 的现场。
要恢复现场继续进行操作,有两种方式:
第一种方式是使用
git stash apply
命令,这种方式恢复之后不会删除stash的内容,需要手动执行git stash drop
删除。git stash apply stash@{0}
删除 stash@{0} :
git stash drop stash@{0}
第二种方式是使用
git stash pop
,该命令会在恢复的时候将stash内容删除git stash pop
一般情况下,当手头工作还没有完成的时候,可以使用
git stash
命令将手头上的工作暂存,切换到其它分支完成紧急任务,再回到该分支,使用git stash pop
恢复工作现场。
推送本地分支到远程仓库
使用命令 git push origin <branch_name>
:
$ git push origin issue-101
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/mylxsw/FocusPHP.git
* [new branch] issue-101 -> issue-101
拉取远程分支到本地开发
从远程仓库clone
时,默认情况下只能看到 master 分支,要在分支工作,需要在创建远程origin的dev分支到本地。
git checkout -b issue-101 origin/issue-101
创建本地分支与远程分支的关联
git branch --set-upstream dev origin/dev
查看分支合并情况
git log --graph --pretty=oneline --abbrev-commit
第二部分:
从创建分支到你的工作任务完成提交分支,以及提交后合并别人最新的更新等操作,再次强调这里一定要注意顺序按顺序来。
(1)git checkout -b 你的分支名
(这里注意公司名的规范性,一般建议devXXX或者feature/XXX,当然具体看你自己以及公司老大要求了)
(2)git status
此操作为查看改变内容
这一步是你在(1)的基础上完成了你的代码编写开发工作,准备提交代码时开始做的一步。
(3)git add .
注意add和.之间有一个空格,等同于git add -all,此操作为把你修改内容添加到本地仓库。
(4)git commit -m "提交内容或功能说明"
此操作是为你的代码修改写一个备注,好让别人知道你提交的这个分支内容干了什么事情。
(5)git push
此操作为把本地你的分支推送到远程你的分支,可以勉强认为是你修改代码到提交的最后一步,但是由于你在修改代码干活的同时别人也做了别的修改,所以建议更新代码,把别人的与自己的做一个合并,所以继续下面操作。
----------------------------------
(6)git checkout master
(7)git pull
此操作为把远程代码拉到我的master分支
(8)git checkout your_devName
(9)git merge master
此操作为把所有别人的分支和我的合并。
自此,代码开发创建分支到推送就完成了,这9个步骤对于初学者来说切记一个不能少,顺序一点都不能乱哦。
参考: