【问题标题】:How can I 'git merge' a new file based on a tracked file of a different name?如何根据不同名称的跟踪文件“git合并”一个新文件?
【发布时间】:2012-08-18 08:52:53
【问题描述】:

我对 git 很陌生,遇到以下问题:

我在我的私有分支中处理了一些大型代码文件并对其进行了重构,因此其中大部分被移到了其他几个代码文件中。现在我试图通过“git merge --squash --no-commit mybranch”合并回master,但是我试图提交它给了我一个错误:

错误:“foo”已在索引中暂存更改 (使用 --cached 保留文件,或 -f 强制删除)

并且 foo 的状态是“修改”和“重命名为 bar”,而 bar 是从 foo 使用的新文件。我如何告诉 git 这不是重命名和提交?

【问题讨论】:

    标签: git merge


    【解决方案1】:

    更改rename threshold on the merge to 100% (or something really high):

    git merge -X rename-threshold=100 <branch>
    

    git merge 将只检测重命名,对于这个特定的合并,如果两个文件 100% 相同。这是一次性的合并策略参数,因此您不必担心它是一个永久设置。

    【讨论】:

    • 进一步证明 git 有多神奇,如果您需要在源代码控制方面做一些事情,很可能已经有 git 代码在处理它。
    猜你喜欢
    • 2022-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 2020-01-05
    • 1970-01-01
    相关资源
    最近更新 更多