如何避免GitHub将test2.py识别为test1.py的移动文件?
避免Git将复制文件识别为移动文件的方案
Git是靠文件内容相似度来判断是否为移动/重命名操作的,要避免它把test2.py识别成test1.py的移动版本,试试这几个实用方法:
方法一:拆分两次提交
- 第一步:复制test1.py到目标位置命名为test2.py,删除原test1.py,执行
git add .后提交,提交信息可以写“复制test1.py为test2.py并删除原文件” - 第二步:修改test2.py的目标行,执行
git add test2.py后再次提交,提交信息写“修改test2.py指定行内容” - 拆分提交后,Git会把删除原文件和新增副本视为独立操作,后续的修改也不会和原文件关联,合并时就不会触发移动识别的冲突
方法二:先修改副本再提交所有变更
- 复制test1.py得到test2.py后,先修改test2.py的目标行,再删除原test1.py
- 执行
git add .后一次性提交,提交信息可以写“新增test2.py(基于test1修改一行)并删除test1.py” - 此时test2和test1的内容已经存在差异,Git的相似度检测不会判定这是移动操作,而是独立的新增+删除
方法三:强制关闭重命名检测提交
- 复制test1.py为test2.py并删除原文件后,执行
git add --no-renames .命令,这个参数会强制Git跳过重命名/移动识别,把删除和新增当成两个独立变更 - 提交之后再修改test2.py的内容并单独提交即可
内容的提问来源于stack exchange,提问作者Real Programmer
相关产品推荐
相关产品推荐

