【问题标题】:How to get rid of "merge branch..." automatic messages in git repository如何摆脱 git 存储库中的“合并分支...”自动消息
【发布时间】:2012-08-08 16:39:35
【问题描述】:

我们的团队最近开始使用 Git。

我们正在做的主要工作流程很简单,(因为我们还没有接受过更复杂的命令和工作流程的忍者训练):

  1. 开发人员 A 提交新代码(很少提交)。
  2. 开发人员 A 将更改推送到主存储库。
  3. 开发人员 B 提交,尝试推送(收到一条消息说他必须 PULL)。
  4. 开发者 B 拉,然后推。

一段时间后,存储库日志如下所示:

我想避免这种情况,因为它使日志几乎不可读,更不用说在某些情况下正在进行的“合并”不会更改任何文件(我看不到它所做的任何更改) .

我们在使用 Git 的方式上是否做错了什么?我们应该采取不同的做法吗?

【问题讨论】:

标签: git version-control dvcs


【解决方案1】:

您没有做错任何事,这只是 Git 记录通过合并两组更改对存储库进行的更改。

如果你在推送前使用git rebase,或者在拉取时使用git pull --rebase,那么合并提交将不会保留在历史记录中。请参阅http://arjanvandergaag.nl/blog/clarify-git-history-with-merge-commits.html 了解更多信息。

【讨论】:

  • TortoiseGit 在其 UI 中不提供“pull --rebase”选项。还有其他更好的 UI 工具吗?
  • 我不知道,对不起,我只使用命令行工具。在 TortoiseGit 中必须有一些方法来变基,如果你在拉动时不能这样做,那么你应该能够做一个显式的变基步骤。如果 TortoiseGit 没有 Rebase 命令,您可以通过运行 git config branch.<your_branch_name>.rebase true 将分支设置为 always rebase
  • rebase 流程并不适合 GUI
  • @lysergic-acid 例如,交互式 rebase 可以做很多不同的事情,例如重放历史并暂停编辑,在中间执行任意 shell 命令,重新排序历史,将多个提交压缩到一个单一的提交,等等。GUI 工具在我的经验中倾向于隐藏这种复杂程度。一般来说,许多用户害怕 rebase,因为它可以改变历史,而 GUI 可能也因此想要隐藏它。
  • @lysergic-acid,这意味着所有拉取操作都将变基,因此您应该在使用它之前了解这意味着什么。已经有很多关于变基的利弊的文章。一个缺点是,如果您的工作树中有未提交的更改,则无法重新设置基准。
猜你喜欢
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 1970-01-01
  • 2020-04-06
  • 2013-11-10
相关资源
最近更新 更多