Git 每天提交还是在功能完成时提交?

Git Commit Daily or Commit when Feature is completed?

我想知道如果我 Commit/Push 我在某项功能上的每日进度或我 Commit/Push 当某项功能或模块完成时,什么会更可行(或遵循惯例)?

这取决于您在此上下文中所说的 "Commit" 是什么意思。对于许多历史/非 git 用户,"commit" 的概念是将更改提交回最终的中央存储库(所有其他用户都从中提取更新)。

那么,您是指 git "commit" 到您的本地存储库,还是 git "push" 到远程存储库?

如果它是本地存储库 "commit" 则一直这样做。如果不反对,请在一天结束时进行。这样您就可以跟踪更改。

A "push" 到远程仓库(当然是关联的功能分支)是一个不同的野兽。

这在很大程度上取决于您和您的团队如何安排工作/工作日。有些团队需要签入(提交/推送),这样你就不会丢失你的工作。有些可以 "just commit locally, and push when it works".

这也取决于你团队的分支策略。很多时候,您可能是唯一一个从事某项功能的人。这意味着你是一个分支中唯一的人。如果您签入非工作代码,那么它可能不是问题。

如果您有多个提交者到一个分支,那么您的损坏代码将在他们提交时停止他们的工作。

如果您有一个流程,其中所有分支都是 CI 构建,那么这意味着 CI 板上的不良构建。你可能不想要那个。

我喜欢推动工作代码并且不丢失我的工作。这是我的方法

  • 以小块的方式完成工作(等等敏捷等等 - 不是谈论那个)。修正你正在做的事情的一部分。如果可行 "ok"(不会爆胎),则提交更改。如果您的团队擅长它,那么将此工作推送到远程仓库中的分支。

  • 与您的团队协调,或观察您分支的 CI 构建,以确保集成代码通过测试。如果一切都好,那么继续前进。如果不是,那么回去修复你的工作,直到你的分支是绿色的。