【发布时间】:2015-04-11 20:20:12
【问题描述】:
我不了解 Visual Studio 的 Git for TFS。
我在 TFS 上的 Git 中克隆了一位同事的解决方案并开始添加代码。然后我意识到我需要自己的分支来进行所做的更改,因此按照Push a new local branch to a remote Git repo and track it too 中的说明运行了
git checkout -b e4ctim
git push -u origin e4ctim
当我对代码进行更改时,Visual Studio 会在代码文件旁显示熟悉的红色勾号图标,以向我保证更改已触发文件被检出:
然后,当我保存文件时,Visual Studio 会将图标返回到蓝色挂锁。我假设这个从红色勾号到蓝色挂锁的变化表明这个变化已经在 Git 本地签入:
但是当我查看修改文件的历史时,没有!
我想在本地提交我的更改并将它们与 TFS 服务器同步。
Visual Studio 根本看不到任何变化:
从命令行我可以看到 Git 已经通过运行命令注意到了我的所有修改
git status
并看到许多未针对提交和未跟踪文件暂存的更改。
我可以使用Git book
git add
或者更具体的
git add -u .
准备提交的文件,但我不愿意这样做,因为 Develop your app in a Git repository (track, commit) Visual Studio 文档指出:
问:Git 阶段在哪里?
A:如果你是一位经验丰富的 Git 用户,你可能已经注意到 Visual Studio 处理更改的方式与命令提示符不同。 您可能想知道包含的更改部分是否包含 你的阶段性变化。事实上,Visual Studio 通常会绕过 Git 舞台为你。当您提交更改时,Visual Studio 同时 阶段并提交它们。当您添加一个 文件到您的 Git 存储库; Visual Studio 确实上演了这种 改变。
Visual Studio 同时分阶段和提交更改。但是为什么它没有将我对跟踪文件所做的任何修改列为更改,从而让我提交它们?
【问题讨论】:
-
请注意,我故意没有标记此
git,因为它似乎是 TFS 和 Visual Studio 的 Git 工作流所特有的。 -
文件是否位于 Team Explorer - Changes / Untracked files 下?
-
在 Visual Studio "15" 预览版中,它现在确实使用了 git 的阶段。
-
原因可能是之前提交不成功,解决方案资源管理器中的所有文件都变为“已提交”。我的问题原因是在 SQL Server 数据库项目中添加了 jmf 文件(见下文)。