我没有得到关于Visual Studio的TIT Git的信息。
我在GFS上克隆了一个同事的TFS解决方案并开始添加代码。然后我意识到我需要自己的分支来进行更改,所以按照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舞台在哪里?
答:如果您是经验丰富的Git用户,您可能已经注意到了这一点 Visual Studio处理更改的方式与命令提示符不同。 您可能想知道“包含的更改”部分是否包含 你的上演变化。实际上,Visual Studio通常会绕过Git 适合你的舞台。当您同时提交更改时,Visual Studio 阶段并提交它们。添加a时会发生一个例外 文件到你的Git存储库; Visual Studio确实可以使用这种方式 变化
Visual Studio同时进行并提交更改。但为什么我没有将我对跟踪文件所做的任何修改列为更改,从而让我提交它们?
答案 0 :(得分:52)
这更像是一种解决方法,而不是解释,但我发现如果我忽略了the documentation"当您提交更改时,Visual Studio会同时进行分段并提交它们"而是使用命令
将修改添加到暂存git add -u .
然后Visual Studio突然意识到修改并让我在本地提交它们并将它们与TFS服务器同步。此外,它然后把新文件'关于我添加的文件的绿色十字架,我发现我可以再做一次提交,然后再进行另一次同步以获取我所做的添加和删除。
从那时起,Visual Studio正在做我期望的事情:当我对文件进行更改时,文件在提交窗口中列为已更改。
我仍然不知道为什么Visual Studio在初始git add
之后才能获取更改,但至少它现在可以正常工作。
答案 1 :(得分:15)
我必须将此行添加到我的.gitignore:
[path to project]/node_modules/
显然VS2015在那里的一条很长的路上崩溃了,只是决定放弃所有的希望
答案 2 :(得分:5)
我有同样的探索,我意识到以下几点: 为了显示变更集,正如@dumbledad所说,Visual Studio运行命令
git add -u
内部用于暂存更新。 如果您尝试添加到更改集的某些文件是由另一个进程打开的,则git命令会收到权限错误。 Visual Studio不会显示更改。
在我的情况下,我的repo中有一个文档被另一个应用程序打开,导致Visual Studio因Git权限错误而无法显示修改。因此,请检查您的git存储库的任何文件是否未被任何其他应用程序打开。
答案 3 :(得分:5)
删除文件myProject\.git\index.lock
修复了我的情况。
答案 4 :(得分:3)
我使用VS 2015 Update 1并且也遇到了这个问题。而且,与此同时,VS'输出窗口告诉我解决方案文件夹下的private Recycle_Adapter adapter;
adapter.SetOnItemClickListener(new Recycle_FrameAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
if(position == 1){
tv_module.setText("");
}
else if{
}
continue up to last
}
});
文件被另一个程序占用。根据{{3}},我修复了占用问题:将VC.opendb
和*.VC.opendb
添加到*.VC.db
文件中。一切顺利。
答案 5 :(得分:1)
我在Visual Studio Update 3中遇到了同样的问题.VS在本地保存,但没有接收任何更改,因此我无法提交。
我从https://git-for-windows.github.io/下载了Git for Windows(感谢@fhilton),打开了Developer Command Prompt并将目录更改为C:\ Repos \ Scheduler(源代码的位置)。
然后我跑了GET ADD -U并收到以下错误......
错误:打开(“WindowsServices \ Scheduler.WindowServices.InstallLog”): 权限被拒绝
错误:无法索引文件 WindowsServices \ Scheduler.WindowServices.InstallLog
致命:更新文件失败
正如其他人所说,看起来Visual Studio中的GIT工具可能会无声地失败,即使对于最基本的Windows级错误也是如此。更糟糕的是,它可以告诉你GIT是完全同步的。命令行肯定是你的朋友。
答案 6 :(得分:0)
我在新机器上遇到了这个问题,全新安装了VS2013 Update 5和VS 2015,这让我发疯了。然后我发现如果我安装了Git for Windows,问题就消失了! https://git-for-windows.github.io/
答案 7 :(得分:0)
然后我试图进行更改,但文件没有受到影响......有一个简单的解决方案。主要问题是忽略文件的git忽略文件之一..
打开您的本地仓库,例如D:// repos,然后查看您想要的文件
- > d://repos/project1/HomeViewModel.cs
- >右键单击它并单击Git Extentions
- >选择+添加文件
- >然后强制选项
- >点击添加文件。如果你去,你的文件将被添加到更改中
答案 8 :(得分:0)
有用的文章!使用Git Bash(git add -u)帮助我更接近问题的原因。提交以前未在Visual Studio中显示的更改后,由于使用了SQL Server数据库项目,因此只完成了一半的提交。显然,Windows 10开始在同一文件夹中添加jfm文件,从而使其始终保持打开状态,并防止VS访问它。解决方案是在提交之前将其添加到.gitignore中。
有关更多信息,请参见此线程:
Visual Studio 2015 Database Project directory contains a file with extension jfm
答案 9 :(得分:0)
打开“视图”>“输出”,在“显示输出来源”中选择“源代码控制-Git”,并检查是否有任何错误。正如其他人提到的那样,Git中的任何错误都使MS Project默默地忽略任何更改。
答案 10 :(得分:0)
在我的情况下,我的问题是我在Linux的项目路径中使用了带有符号链接的Linux(无法确定带有符号链接的Windows是否存在相同的问题)