我们使用GIT和Visual Studio 2013(Ultimate + Professional版本)。解决方案和项目的代码都在GIT中,每当我们在Visual Studio中重命名文件时,GIT会将它们视为:
通过
基本上,在VS中进行的重命名仍然需要一些手动工作。同样重要的是,许多这些重命名是在IDE内部重构时发生的,即对类/成员等进行重命名并更改所有引用。如果命名空间或类名更改,则文件将被重命名。
那么,是否有任何设置可以切换,任何工具可以安装,任何神灵可以安抚,以便从Visual Studio进行的重命名也可以映射为GIT的重命名(就像
重命名前
c:\temp\testCodeSnippets>git status
# On branch master
nothing to commit (working directory clean)
从 Visual Studio 重命名后
c:\temp\testCodeSnippets>git status
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: OldName.cs
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# NewName.cs
no changes added to commit (use "git add" and/or "git commit -a")
通过
git mv
重命名c:\temp\testCodeSnippets>git mv OldName.cs NewName.cs
c:\temp\testCodeSnippets>git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# renamed: OldName.cs -> NewName.cs
#
基本上,在VS中进行的重命名仍然需要一些手动工作。同样重要的是,许多这些重命名是在IDE内部重构时发生的,即对类/成员等进行重命名并更改所有引用。如果命名空间或类名更改,则文件将被重命名。
那么,是否有任何设置可以切换,任何工具可以安装,任何神灵可以安抚,以便从Visual Studio进行的重命名也可以映射为GIT的重命名(就像
git mv
一样使其平稳)?
git status
将这些项目报告为重命名,但Visual Studio没有?您能展示一些文件和屏幕截图以提供更多细节吗? - Edward Thomsongit status
或git diff
中发生了重命名。Visual Studio 不会更改此行为,它只是未执行这些更改。 - Edward Thomson