【发布时间】:2013-01-27 18:48:39
【问题描述】:
我正在尝试将特定项目的连续快照放入 git 的历史记录中。我通过使用每个快照的内容填充存储库目录然后运行来做到这一点
git add -A .
git commit -m 'Version X'
这是this answer推荐的方法。但是,我看到只有当 100% 的文件内容保持不变时,提交才会识别文件重命名。有没有办法影响git commit 的重命名检测以使其找到文件内容发生了一些变化的重命名?我看到git merge 和git diff 有多种控制重命名阈值的选项,但git commit 不存在这些选项。
我尝试过的事情:
- 使用自制脚本定位重命名的文件,并在提交新文件内容之前将重命名到新位置的原始文件执行提交。但是,这会引入人工提交,而且看起来不优雅,因为它没有使用 git 的重命名检测功能。
-
为每个快照创建一个单独的分支,然后将连续的分支合并到
master使用git merge -s recursive -Xtheirs -Xpatience -Xrename-threshold=20但是,这让我保留了旧版本的重命名文件,同时也无法检测到重命名。
【问题讨论】:
-
这有关系吗?在
git commit中设置这样的选项只会影响该命令的 UI; Git 实际上并不跟踪重命名。 -
我希望
git log --follow能够跨重命名工作。通过简单的提交序列,它会在文件的最新版本处停止。
标签: git rename git-commit