你可以向新程序员推荐Git原理吗?

时间:2017-06-01 01:12:23

标签: git github

Git相对较新。我的工作有点混乱了不同的提交,stashes和分支。我知道Git可以根据任务使用不同,但我仍然会喜欢一些很好的指导原则。以下是一些问题:

  1. 阅读经常提交的建议。另一方面,只有在代码稳定时才会提交建议,这在某种程度上是矛盾的。

  2. 否则,请经常阅读建议。但是,存储不包含消息,并且需要一组不同的命令。然后你可能会回到一个分支,忘记已完成的藏匿处。或许坚持提交会更好吗?

  3. 您是否建议在一行命令中一起添加和提交?

4 个答案:

答案 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。我们认为BC是微不足道的提交,并决定将它们压缩为一次提交。

#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-DBC仍然存在,但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-PmasterD移至PD的chagnes现已分为MNOPD仍然存在,但无法从master访问。

答案 1 :(得分:1)

Git有一个非常强大的分支和合并机制,使用它

  1. 始终为任何新功能创建分支。
  2. 在你的新分支上尽可能频繁地提交。我通常在逻辑断点之后做。
  3. 一旦代码稳定并且您认为功能已完成,那么您可以将新分支合并到旧分支。
  4. 如果您需要切换到其他brach(可以说是立即生产修复),您可以隐藏更改然后切换分支。当我处于变化的中间时,我使用存储,但我想出于某种原因切换分支。
  5. 至于单行添加和提交是您的个人偏好。但是,如果您继续提交逻辑断点,则不需要频繁添加和提交,只需提交。

    <强>更新

    逻辑断点可以是任何内容,新功能或功能,它取决于您所做的更改。因此,我们假设您正在逐步进行更改。无论何时你认为这一步是最终的,都要提交。在某些时候,你意识到你可能想要退一步并重新开始。请注意一步。那是你什么时候回到最近的提交点。现在,如果您没有提交,那么返回一步将很困难。因此,所有提交都将准确显示功能的实现方式。

    我建议开一个新的远程分支。当您推动中间更改时,它将作为备份。否则只在本地计算机上进行更改。如果出于任何原因,机器发生故障,您将失去所有进度。

    首先,它似乎付出了很多努力。根据我的经验,我们花了大约一个星期来掌握一些东西,但现在它已经成为我们日常生活的一部分。

    请查看git workflows。对于第一次阅读,我建议观察代码如何流动,而不仅仅是命令。一旦你理解了它,并选择一个最适合你的套件,你就可以看看如何实现它的命令。

答案 2 :(得分:0)

1.yes,经常提交,并且不应该与

相矛盾
  

代码稳定时提交

“稳定”意味着您可以通过所有测试,如果您在将来的步骤中失败,您将希望回滚到此状态。当您经常提交时,步骤会更小,这使您更容易回想起所有内容。所以你应该经常测试你的项目这是一个很好的做法。这是一个很好的原则来自&lt;&lt;测试驱动开发&gt;&gt;作者Ken Back。

2.由于经常提交,因此存储通常不是问题。当您提交时存储。

3.这个人的习惯不是问题。

答案 3 :(得分:0)

我也开始使用Git,并且也冲浪了很多民间的中心。我必须要努力学习的一些事情是:

  • 确保您的提交中的评论与您要添加的内容相关
  • 分支机构是你的朋友!合作时使用它们
  • 在与多人合作时,学习如何执行拉取请求也很有帮助