【问题标题】:Make All Merges Manual in Git在 Git 中手动进行所有合并
【发布时间】:2014-07-31 19:12:19
【问题描述】:

我需要知道如何手动编辑每个合并。我在这里找到了答案,但一切都只有在合并冲突时才出现。我实现了这些,如果有新文件被拉取或代码之间没有直接冲突,它将自动合并,这是我做不到的。

我想手动确定每个新文件、代码行以及与合并工具的冲突。

请帮助我解决这个问题已经一个多星期了。

【问题讨论】:

  • 为什么要手动合并每个文件?
  • 公司负责人希望我们将更改提交给他,他将手动批准所有内容,然后推送到生产服务器。只要确保没有任何内容被覆盖,如果没有引发冲突,git 可以轻松做到这一点
  • 不过,git 的优点在于,如果所有者不喜欢最新版本,您可以随时返回到以前的版本。因此,所有者可以在事后进行审查,而不是成为过程中可能耗时的部分。
  • @JasonNicholas:为什么不让他在审核更改后进行合并?

标签: git merge manual merge-strategy


【解决方案1】:

如果您将--no-commit 标志用于git merge,git 将执行合并,但不会提交提议的合并,因此您可以以任何您喜欢的方式查看它,包括git difftool。

如果您同意合并,请执行常规git commit。如果没有,请照常处理提交,直到您满意为止。

(顺便说一句,正如您所见,当合并导致冲突时,Git 永远不会自动提交。)

【讨论】:

  • 我最近才了解 difftool 以及如何定义您想使用的工具。虽然我喜欢这个答案,但在没有提交和没有 ff 的情况下拉出很多次后,difftool 没有打开。你会碰巧知道造成这种情况的任何原因吗?我在配置中有它,有时它工作正常。
  • "Sometimes" 在没有更多上下文的情况下有点难以调试。你可能会更幸运地为此提出一个单独的问题。
  • C:\Users\Chris\Documents\GitHub [master]> git pull --no-commit --no-ff -u testing master remote:计数对象:118,完成。远程:压缩对象:100% (71/71),完成。远程:总计 118(增量 33),重复使用 87(增量 25) 接收对象:100%(118/118),11.24 KiB | 0 字节/秒,完成。解决增量:100% (33/33),完成。来自github.com/NicholasJM/gitTesting * 分支 master -> FETCH_HEAD * [新分支] master -> main_gca/master
  • 在此之后使用了 git difftool 并且没有任何反应
猜你喜欢
  • 2011-06-07
  • 2011-03-03
  • 2016-05-05
  • 2017-03-26
  • 2012-07-13
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
相关资源
最近更新 更多