下面通过一个简单案例分析如何合并删除一个分支,首先我们在github创建一个空项目,然后把他克隆下来。

雷小天博客

git --version     //查看git版本

git clone git@github.com:kanlidy/hellogit.git    //克隆hellogit项目到本地

git status    //查看项目的状态,位于本地master分支

git branch -a    //查看远程分支

git branch    //查看本地分支

touch test.txt      //创建test.txt文件

下面我们对test.txt文件,进行远程仓库的提交

雷小天博客

git add .    //对所有文件添加建立跟踪

git commit -m "初次提交"    //提交文件,并写描述(初次提交)

git remote -v    //查看远程仓库

雷小天博客

git push origin master    //把文件推送到到master远程仓库

git branch -a    //查看远程仓库

master代码是我们稳定的项目代码,但是这个时候我们来了个新的功能,我们需要在master分支上做一些变化。但是我们在没有完成项目的时候,我们不提倡直接在master上改代码,这个时候我们就需要创建一个新的分支dev

雷小天博客

git checkout -b dev    //创建一个新的分支dev

ls    //查看当前分支的文件

touch test1.txt    //创建test1.txt文件

git status    //查看分支状态

git add test1.txt    //建立跟踪

git commit -m "dev上的功能开发"

git push origin dev    //推送到远程dev上

雷小天博客

git branch -a    //查看远程分支,发现绿色的标志是处在当前分支,同时通过推送创建了远程dev分支

git checkout master    //切换本地master分支

为什么要切换到本地master分支,因为我们现在要把本地dev分支合并到本地master分支(合并到哪,就先切换到哪)

雷小天博客

git merge dev    //合并dev分支到当前分支(也就是刚刚切换的master分支)

git push origin master    //合并之后,我们还要将合并之后的代码推送到远程master分支上

git branch -D dev    //合作之后,删除多余的本地dev分支,查看分支,确实少了dev分支

雷小天博客

git push origin :dev    //删除本地dev分支,还需要删除远程dev的分支

git reset --hard head^    //如果后悔了,我们可以退回到推送之前的版本

git reflog    //查看行为日志,可以根据44c2edc或者HEAD@{1}任意的选退回的版本

git reset --hard HEAD@{1}    //退回到该版本