一、新建一个分支并同步到git
本例是在上一篇中创建的master分支基础上再新建一个dev分支
1、查看当前所在分支
git branch
git branch命令会列出本地的所有分支,当前所在分支前面会标一个*号。
2、新建一个分支
git checkout -b dev
git checkout命令加上-b参数表示创建并切换,相当于执行下面这两条命令:
git branch dev //创建dev分支
git checkout dev //切换到dev分支
3、将分支同步到git
现在直接执行push命令:
git push origin dev
执行完之后,登陆github查看,就能看到多了个dev分支。或者也可以用git branch命令查看。
二、删除分支
1、删除本地分支
删除一个分支之前需要先切换到其他分支上,以删除dev分支为例。
git checkout master //切换到master分支
git branch -d dev //删除dev分支
如果要删除的分支上还有没merge的改动,会删除失败,git也会给出相关提示。这时候就需要把删除命令的参数中小写的-d换成大写的-D。
git branch -D dev //删除dev分支
2、删除远程分支
git push origin --delete <BranchName>
三、本地修改后上传git
修改一个文件内容,提交并加提交注释
git add . // 新增一个文件的话需要先add。如果是编辑一个已添加过的文件就不需要执行这条命令了。
git commit -a -m "edit a file"
git push origin dev
四、合并分支
合并分支有两种方法,一种是git merge,一种是 git rebase。
1、git merge
将分支dev上修改的代码合并到主干master,执行完上面第三步的push之后,先切到主干master分支,然后再执行merge,提交并添加注释,最后push到git。
git checkout master
git merge --squash dev
git commit -m 'merge dev'
git push origin master
注:在开发一个功能的时候可能会多次提交代码,向master做分支合并的时候,就会出现很多commits,--squash参数是为了将一个功能的所有提交压缩成一个commit合并到master上。
2、git rebase
将分支dev上修改的代码合并到主干master,执行完上面第三步的push,将分支dev的改动同步到git之后,分支状态为:C0 --> C1 --> master,C0 --> C2 --> dev,(新增dev分支后,master分支上也有改动)。先在dev分支上执行git rebase master 命令,分支状态变为C0 -->C1 --> master --> C2' --> dev,然后再切换到master 分支,执行git rebase dev 命令,分支状态变为C0 --> C1 --> C2' --> master/dev。
git checkout dev
git rebase -i master
(git push origin dev)-- 根据需要是否push到远程
git checkout master
git rebase -i dev
(git push orgin master)
执行过程中,可随时用 git status 命令,查看当前的状态。
查看当前git状态:
git status