1. Git分支管理常用命令:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
2. Git 解决合并冲突问题
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log --graph
命令可以看到分支合并图。
3. 分支策略
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master
分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev
分支上,也就是说,dev
分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev
分支合并到master
上,在master
分支发布1.0版本;
你和你的小伙伴们每个人都在dev
分支上干活,每个人都有自己的分支,时不时地往dev
分支上合并就可以了。
所以,团队合作的分支看起来就像这样:
tips: 合并分支时,加上--no-ff
参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward
合并就看不出来曾经做过合并。
4. Git 如何 clone 并显示非 master 分支的代码
直接使用命令
git branch -r #查看远程分支
或
git branch -a #查看所有分支
会显示
origin/HEAD -> origin/master
origin/ly
origin/master
然后直接
git checkout origin/ly
于是,便可以查看当前分支下的脚本了。
5. 本次仓库与远程仓库的关联与取消关联
1)在本地目录下关联远程repository :
git remote add origin git@github.com:git_username/repository_name.git
2)取消本地目录下关联的远程库:
git remote remove origin
6. 新技能-定点删除某个历史节点
当某个历史节点进行了一些误操作时,需要回退到该历史节点之前,但是该误操作之后的commits还想保留。这时可以借助git rm 和 git cherry-pick操作来完成。具体思路如下:
i. 复制当前分支-baseline_branch
ii. 回退到误操作之前的节点,复制一个新分支-new
iii. 在new分枝上跳过误操作,进行后续操作,然后通过 git cherry-pick commit-ID 逐个挑选复制想要的commit 到new分支
以上三步之后,便可以得到从原始问题分支剔除问题操作后的new分支。
大功告成,感谢同事指点的大招!!!
本文笔记部分内容摘自张雪峰老师博客及其他大神无私奉献的资源,还有部分内容来自日常同事传授,在此一并表示感谢!
References:
[1] 张雪峰博客:Git教程 - 廖雪峰的官方网站
[2] Git 如何 clone 非 master 分支的代码
[3] git中本地与远程库的关联与取消_The40thieves的博客-优快云博客_如何撤销https的remote关联