查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout -b name
合并某分支到当前分支:git merge name
删除分支:git branch -d name
解决冲突
使用git status
命令可以查看冲突问题
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
使用git log
可以查看分支合并的情况.
Bug分支
假设在dev分支上进行开发,而现在需要修复一个bug并且merge到master分支上.而现在dev上的工作只工作到了一半,还不能commit.
这种情况下,可以在dev分支中,使用git stash
,这时,git status
查看工作区的时候是干净的(干净才可以checkout到其它的分支).
现在,可以到其它分支上工作了.
现在切回去bug分支,用git stash list
可以查看工作区现场.
恢复现场的两种方法:
-
git stash apply
:恢复现场,但是stash不会删除. -
git stash pop
:恢复现场,但是stash会被删除.
删除分支
如果需要删除没有被merge的分支,需要使用命令:
git branch -D feture
多人协作
从remote获取的项目只有master分支.
如果远程有dev分支的话,在本地可以使用以下命令来checkout到在远程已经存在的另一个分支.
//这样,在本地就会切换到远程dev的分支上.
git checkout -b dev origin/dev
多人协作的步骤:
- 首先,
git push origin branch-name
推送自己的修改. - 如果推送失败,因为远程分支的比你的本地更新,先使用
git pull
试图合并. - 合并有冲突的话,则解决冲突,然后在本地提交.
- 解决冲突之后,再执行
git push origin branch-name
提交. - 如果
git pull
出现no tracking information
的话,那么需要进行git branch --set-upstream branch-name origin/branch-name
操作(建立本地分支和远程分支的关联).
操作标签
-
命令git push origin tagname可以推送一个本地标签;
-
命令git push origin --tags可以推送全部未推送过的本地标签;
-
命令git tag -d tagname可以删除一个本地标签;
-
命令git push origin :refs/tags/tagname可以删除一个远程标签。
Github的Pull Request
步骤:
- 先在github上fork一个感兴趣的项目
- 在自己fork的项目上做修改
- 然后在github自己fork的项目上发起一个pull request
git merge --no-ff
git merge 带上参数--no-ff
的区别如下:
网友评论