更改文件名大写后在git中合并

时间:2016-04-05 20:01:18

标签: git merge

所以我将repo中的所有文件名从大写改为小写。如果我尝试以标准方式执行此操作,我将收到以下错误。

$ git mv Actuals.py actuals.py
fatal: destination exists, source=Actuals.py, destination=actuals.py

所以我使用了force选项

$ git mv -f Actuals.py actuals.py
warning: destination exists; will overwrite!

虽然有效,但现在当我尝试检查另一个分支时,我遇到了麻烦。

$ git checkout integration
error: Untracked working tree file 'Actuals.py' would be overwritten by merge.

所以我也强迫它:

$ git checkout -f integration
Switched to branch 'integration'

但现在我真的遇到了麻烦,因为当我尝试将之前的分支合并到这个分支中时,我再次被阻止:

$ git merge develop
Updating 6256d82..a5b3ea1
error: Untracked working tree file 'actuals.py' would be overwritten by merge.  Aborting

如果没有创建这些文件的本地副本,并且在我要合并的每个分支上删除和添加每个文件,我该怎么做?

1 个答案:

答案 0 :(得分:0)

这是一个解决方法(虽然我不认为它需要涉及到这一点)。我将原始分支中每个文件的名称更改为修改后的名称并提交更改:

$ git mv actuals.py _actuals.py

对于每个文件,然后我签出另一个分支并将其合并。所有文件现在都有新名称。然后我检查原始分支并将所有内容重命名为预期名称:

$ git mv _actuals.py actuals.py

提交所有内容,签出第二个分支并重新合并。现在所有文件都是正确的。这种方法允许输错,除非你建立一个脚本,所以我不是一个粉丝,但它让我合并我的分支。