Git相对较新。我的工作有点混乱了不同的提交,stashes和分支。我知道Git可以根据任务使用不同,但我仍然会喜欢一些很好的指导原则。以下是一些问题:
阅读经常提交的建议。另一方面,只有在代码稳定时才会提交建议,这在某种程度上是矛盾的。
否则,请经常阅读建议。但是,存储不包含消息,并且需要一组不同的命令。然后你可能会回到一个分支,忘记已完成的藏匿处。或许坚持提交会更好吗?
您是否建议在一行命令中一起添加和提交?
答案 0 :(得分:2)
阅读经常提交的建议。另一方面有 建议只在你的代码稳定时提交,不知何故 相矛盾。
是的,经常提交。并学习如何将一个提交完全或部分分成几个提交,以及如何将几个提交完全或部分压缩为一个提交。
否则,请经常阅读建议。但是,藏匿不包括在内 一条消息,需要一组不同的命令。然后你可能会 回到一个分支,忘记已完成的藏匿处。也许 坚持提交会更好吗?
我个人不建议使用git-stash。创建临时分支并提交更改。编辑提交消息或运行git branch --edit-description <branchname>
来描述临时提交或分支的用途。
您是否建议在一行命令中一起添加和提交?
没有。在提交之前,请务必仔细检查暂存文件。确保你已经上演了你所期望的,不多也不少。如果您正在进行部分添加,git commit -am
可能会破坏您的工作。
更新
如何将提交压缩成一个并将其分成几个?
git init test
cd test
> a
> b
git add .
#this is commit A and we are on the branch master
git commit -m 'root'
echo hello >> a
echo world >> a
echo nihao >> b
echo shijie >> b
git add a
#this is commit B
git commit -m 'english greetings'
git add b
#this is commit C
git commit -m 'chinese greetings'
现在我们有三个提交A-B-C
。我们认为B
和C
是微不足道的提交,并决定将它们压缩为一次提交。
#move master from C to A and stage the changes of B and C
git reset A --soft
#make a new commit D that includes the changes of B and C
git commit -m 'english and chinese greetings'
#now master has moved from A to D
所以现在master
的历史记录是A-D
。 B
和C
仍然存在,但master
无法访问。我们认为D
太大了,决定将其拆分为4个小提交。
#--mixed can be omitted since it's the default
#move master from D to A but keep the changes of D in the working tree
git reset A --mixed
git add -p a
#Stage this hunk [y,n,q,a,d,/,e,?]?
#input e to edit the hunk, and delete the line `+world`, save and quit
#now only the line `hello` is staged
#make the first small commit M
git commit -m 'hello'
git add a
#make the second small commit N
git commit -m 'world'
git add -p b
#Stage this hunk [y,n,q,a,d,/,e,?]?
#input e to edit the hunk, and delete the line `+shijie`, save and quit
#now only the line `nihao` is staged
#make the third small commit O
git commit -m 'nihao'
git add b
#make the fourth commit P
git commit -m 'shijie'
现在历史记录为A-M-N-O-P
。 master
从D
移至P
。 D
的chagnes现已分为M
,N
,O
和P
。 D
仍然存在,但无法从master
访问。
答案 1 :(得分:1)
Git有一个非常强大的分支和合并机制,使用它
至于单行添加和提交是您的个人偏好。但是,如果您继续提交逻辑断点,则不需要频繁添加和提交,只需提交。
<强>更新强>
逻辑断点可以是任何内容,新功能或功能,它取决于您所做的更改。因此,我们假设您正在逐步进行更改。无论何时你认为这一步是最终的,都要提交。在某些时候,你意识到你可能想要退一步并重新开始。请注意一步。那是你什么时候回到最近的提交点。现在,如果您没有提交,那么返回一步将很困难。因此,所有提交都将准确显示功能的实现方式。
我建议开一个新的远程分支。当您推动中间更改时,它将作为备份。否则只在本地计算机上进行更改。如果出于任何原因,机器发生故障,您将失去所有进度。
首先,它似乎付出了很多努力。根据我的经验,我们花了大约一个星期来掌握一些东西,但现在它已经成为我们日常生活的一部分。
请查看git workflows。对于第一次阅读,我建议观察代码如何流动,而不仅仅是命令。一旦你理解了它,并选择一个最适合你的套件,你就可以看看如何实现它的命令。
答案 2 :(得分:0)
1.yes,经常提交,并且不应该与
相矛盾代码稳定时提交
“稳定”意味着您可以通过所有测试,如果您在将来的步骤中失败,您将希望回滚到此状态。当您经常提交时,步骤会更小,这使您更容易回想起所有内容。所以你应该经常测试你的项目这是一个很好的做法。这是一个很好的原则来自&lt;&lt;测试驱动开发&gt;&gt;作者Ken Back。
2.由于经常提交,因此存储通常不是问题。当您提交时存储。
3.这个人的习惯不是问题。
答案 3 :(得分:0)
我也开始使用Git,并且也冲浪了很多民间的中心。我必须要努力学习的一些事情是: