git - 更新 git mv 索引

标签 git merge

Git 不跟踪重命名

我有一个文件dir1/some.class。 我将其复制为 dir2/some.class 并提交 + 推送。 几周后,我删除了 dir1 版本。

我可以教 git 像移动一样而不是新文件吗?
因此,我将从其他分支 merge 到 dir1/some.class 的所有更改实际上会 merge 到 dir2/some.class 中吗?

我试过

git checkout mybranch
git config merge.renameLimit 100
git merge --no-ff -X rename-threshold=80 master
git config --unset merge.renameLimit

一些文件被 merge 了。但有些人没有。特别是我缺少的是 git 日志功能,可以查看 dir2/class 的更改起源于过去的 dir1/class,但这并没有发生。

enter image description here

真正帮助我的是

低重命名阈值(考虑重命名文件的相似度为 10%)
较大的 merge.renameLimit( merge 时消耗大量 ram)

 git checkout mybranch
 git config merge.renameLimit 999999
 git merge --no-ff -X rename-threshold=10 -Xignore-space-change master
 git config --unset merge.renameLimit

另请查看下面标记的答案。

最佳答案

我会尝试这样做:在您要 merge 的分支中,将 dir1 重命名为 dir2(如果需要,您可以在新的临时分支上执行此操作) .然后将其 merge 到您的主分支中。

关于git - 更新 git mv 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12997268/

相关文章:

git - 让git不显示未跟踪的文件

git - 当我 stash 更改时,我如何知道我在哪个分支上?

r - 组合列向量,然后合并到特定格式的数据表中

sql - T-SQL - 更新未更改的值,是否已执行工作?

git - 将标记向前移动一个提交

macos - git-core 已经被 git 端口废弃了

git - (git tfs fetch) TF400324 : Team Foundation services are not available, 底层连接被关闭

python - 在 Python 中合并二维列表和一维列表的最佳方法?

r - 重叠加入起点和终点

algorithm - K-way归并排序在多台主机上划分