Git分支管理
1. 分支的相关操作
1.1 分支的创建
git branch, 来查看现有的分支或创建新的分支。
git branch
* master
git branch ,只需要在git branch
命令后面加上我们想要新建的分支的名称即可。
# 创建issue102的分支
git branch issue102
# 查看现有的所有分支
git branch
# 现有的分支
issue102
*master
1.2 分支的切换
git checkout,命令来进行切换分支。
git checkout issue102
Switched to branch 'issue102'
git branch
* issue102
master
切换分支后,我们就可以进行自己的开发。
# 切换分支
git checkout issue102
# 在分支上创建下新的文件
touch issue102.md
git add issue102.md
git commit -m "update issue102.md"
touch issue102.html
git add issue102.html
git commit -m "update issue102.html"
git log --oneline
,检查下当前Git的记录。
git log --oneline
318e12a (HEAD -> issue102) update issue102.html
c237e60 update issue102.md
1.3 分支的合并
在当前分支进行的工作合并到主分支上,我们需要切回需要合并到的分支上再进合并。
# 切换回主分支
git checkout master
# 使用git merge 进行合并
git merge issue102
# git branch --no-merged
# 查看所有未合并工作的分支
在issue102
分支和master
分支下对issue102.md
文件进行了修改,当我们将issue102分支融合到主分支上时就会发生冲突。如下图所示:
-
手动合并
选择要保留的代码,然后再把>>>>>, ======, <<<<<<这些提示行给去掉。最后重新进行add commit的操作即可。 -
放弃合并
当冲突所导致的改动量很大时,可以选择放弃该次的合并。可以使用
git merge --abort
放弃此次的融合。如果在运行了git merge之后又进行了一些人为的改动,那么在abort之后,所进行的改动也会被回滚掉。 -
mergetool
- Use vimdiff as git mergetool
- 使用vimdiff作为git mergetool
- git-mergetool
1.4 分支推送到远程
$ git remote -v
origin https://github.com/*****/mygit.git (fetch)
origin https://github.com/*****/mygit.git (push)
当我们需要推送本地分支到远程时,需要指定具体的本地分支。
# 推送本地的master分支到远程
git push origin master
# 推送本地的issue102分支到远程
git push origin issue102
1.5 分支的删除
- 删除本地分支
git branch -d
git branch -d issue102
- 删除远程分支
# origin 是远程的主机名
# branch 需要删除的远程分支
git push origin --delete branch
1.6 分支的重命名
# oldBranchName: 旧分支名
# newBranchName :新分支名
git branch -m oldBranchName newBranchName
当我们想要将改名后的分支推送到远程时,我们需要进行如下操作:
git branch -m oldBranchName newBranchName # 将本地的分支进行重命名
git push origin newBranchName # 将新的分支推送到远程
git push --delete origin oldBranchName # 删除远程的旧的分支