Git操作(二)
很久以前写的git入门,最近又巩固了一下Git分支操作,下面是我的一些整理。
1、分支与合并
#创建并切换到该分支 git checkout -b xxx #查看当前分支 git branch #进行一些正常的提交等 #分支工作完成,就可以切换回到master分支 git checkout master #将xxx分支合并到当前分支上 git merge xxx #删除分支 # 合并完成后 git branch -d xxx # 未合并的分支的删除 git branch -D xxx
2、
# 当手头工作没有完成时,先把工作现场`git stash`一下,然后去修复bug
# 修复完成后,`git stash list` 列出所有的暂存状态
# 从暂存区之中恢复回到工作现场 # 先恢复,而后再删除暂存 git stash apply git stash drop # 恢复的同时也将stash内容删除 git stash pop
# 在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动。
3、多人协作的工作模式
- 首先,可以试图用
git push origin <branch-name>
推送自己的修改; -
如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并;-
如果
git pull
提示no tracking information
,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
。
-
-
如果合并有冲突,则解决冲突,并在本地提交;
-
没有冲突或者解决掉冲突后,再用
git push origin <branch-name>
推送就能成功!
4、
-
git merge
命令用于合并指定分支到当前分支 -
使用
fast-forward
方式进行分支合并,只是简单改变了分支指针,而不会产生新的commit
记录。 -
git merge --no-ff -m "msg" <branch_name>
// 合并分支时禁用Fast forward模式
-
git rebase操作可以把本地未push的分叉提交历史整理成直线;
-
git rebase 和 git merge 区别
-