Git:如何共享存储库而不被无关紧要的提交淹没?

Git: How to share the repositories without flooding with nonsignificant commits?

我有一个代码库。 我在自己的电脑上写,但是 运行 的环境是在远程电脑上,所以我是这样工作的:

-> Local: 
|    Write
|    Commit
|    Push --------> company git server |
|                                      |
|  Remote                              |
|    Pull   <---------------------------
|    Compile
<--- Run

但是,如果我遗漏了一个冒号,或者添加了一个换行符或修复了一个名称或所有类似的小改动,我一直在添加大量不重要的提交,这对于版本控制来说一点也不方便。

我想过编写一个脚本来使用 Rsync 同步两台机器,但不确定这是否是最好的方法。

归根结底,我只想提交重要的提交,而不是我添加的所有垃圾。

你会guys/girls怎么做?

  1. git 是比 rsync 更好(更有效)的同步工具,因为它存储了更多的元信息。 rsync 每次都必须重新检查每个文件,而 git 比较双方的对象哈希值。

  2. 如果你不喜欢你有太多小的不是很有趣的提交——使用 git rebase --interactive 并将它们压缩成提交,他们在一个大修复提交中修复或压缩它们。

我根本不会为此烦恼。虽然您确实可以使用 git rebase -i (docs) or (in other circumstances, not for your particular case) git merge --squash (docs) 来摆脱小的、无关紧要的提交,但我看不出有什么问题需要解决。

git 非常 在跟踪许多提交的小变化方面非常有效。你没有浪费太多 space。可能发生的最坏情况是其他人看到了这一点。如果同事向您提出挑战,您可以告诉他们您更愿意尽早并经常提交(这是 git、google 的常用比喻,您会找到 [=15= 这样的支持网站]).对于一般应用程序,它与旧的 "save early, save often" 相同。

git 旨在与频繁、细粒度的提交配合使用。特别是,合并操作丝毫不关心 3 个涉及的提交之间有多少次提交。

对已推送的提交进行变基时要特别小心,这将导致严重的问题,除非您非常严格地控制(和了解)谁已经在他们各自的存储库中提交了您的提交。