[Git] 重学Git三剑客关键总结

Posted 削尖的螺丝刀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Git] 重学Git三剑客关键总结相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
 

核心总结


 
在团队中使用Git的法则

1:push前一定先pull
2:合并代码必须两人结对
3:合并冲突,非自己的变动保持原样,和自己冲突的代码找相应的代码提交人确认如何解决冲突
4:合并完成后,保证本地能编译能运行再push
5:【 合并到主干的代码必须通过测试,必须通过代码review
6:【不同的功能从主干上拉新分支进行开发工作,开发完后确认无误再合并到主干】
7:分支的命名需要加上,拉取人+拉取说明
8:上完线的分支要及时清理

也就是说,从主线打一个分支,然后分支同步本地,以后改的代码都只在分支(本地——>远端)这一条线上做交互,直到这次开发完毕,才合并到主线(切换到主线,merge对应分支到当前主线)上去,如此以往…

 
 
比如我这里拉下来的代码目前在master,远端对主线创建了一个feature/branchdev分支

在这里插入图片描述

那我就要通过 git checkout -b 命令来针对远端分支建一个同名的本地分支了(origin后面的部分相同,之后push就不用带远端分支名了),那我这里使用的命令就是git checkout -b feature/branchdev remotes/origin/feature/branchdev,可以看到结果入下。

在这里插入图片描述

之后在分支改好代码,再checkout main 到主线,然后合并分支再推到主线去就行了。

 
 
 
 

使用禁忌


  • 千万不要用: git push -f —— 这个命令即时不是fastfoward状态也能提交,但是它会把分支上已有的所有提交记录全部清空掉,然后变成当前的一次提交。

  • 公共分支(所有人一起维护的),严禁拉到本地通过rebase做变更历史操作,不管是合并还是重写messege,因为其他人在这历史版本上拉的代码,你改了就会出大麻烦,所有人的代码基层都变了。

    (PS:对于自己本地多次Commit,还从未push过的,可以做rebase,如果是公共部分拉取下来的,千万不要做rebase)

禁止rebase,如果要求历史提交是线性的,如何做呢?

如果线性对你们团队很重要的话,办法肯定是有的。比如master为集成分支,且要求版本历史为线性,假设在GitHub平台上,首先为master分支设置Branch protection rule(不允许直接push),勾选“Require pull request reviews before merging。

其次,Merge Button选择“Allow squash merging”或者“Allow rebase merging”,不要选“Allow merge commits”。
 
学习地址: https://time.geekbang.org/course/detail/100021601-75481

 
 
 
 

其他补充


如果有些文件不想加入版本控制,也不想提交到远端,可以按如下步骤操作:

1.git ls-files查看暂存区内已进行版本控制的文件
2.git rm --cached 〈文件名〉将文件移除版本控制
3.编辑.gitignore文件,将不想加入版本控制的文件写进去,详细方法可参考github上的.gitignore文件。

clone的代码或者新拉取的代码和本地分支是断开的非fastFoward状态,merge的时候报refusing to merge unrelated histories怎么办?

merge执行这个命令

$ git merge --allow-unrelated-histories master

ps: master的名字是你要合并的对象的名字。

同样,有时候pull也会报这个错,pull后执行这个即可。

$git pull origin main–allow-unrelated-histories

ps: main是你远端分支的名字。

可以发现 --allow-unrelated-histories 是一个非常重要的命令,如果远端和本地断开的话就要执行这个。

这里记住一个分支删除的命令,以备不时之需

  • git branch -D 分支名

 
 
 
 

PS : 本文出自对极客时间 —— 《玩转Git三剑客》 的学习总结,由于之前公司用的都是SVN,对GIT的系统了解甚少,索性在周末看完了这个专栏,如果你也对GIT感兴趣,或者正在追这个专栏,欢迎一起探讨,交流学习!

[ 🎏 nextStation: 重学Git三剑客 ]

以上是关于[Git] 重学Git三剑客关键总结的主要内容,如果未能解决你的问题,请参考以下文章

[ Git ] 重学Git三剑客

[ Git ] 重学Git三剑客

代码管理必备-----git使用上传码云

玩转Git三剑客——02. 安装Git03. 使用Git之前需要做的最小配置

Git的入门与基本使用

重学Git以及学习资料