2015-02-11 99 views
49

我沒有得到關於TFS的Visual Studio的Git的東西。Visual Studio TFS Git沒有看到任何變化

我在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顯示了熟悉的紅勾號圖標代碼文件來安慰我說的變化引發了文件簽出:

VS red-tick

,然後當我將文件保存在Visual Studio返回圖標藍色掛鎖。我認爲,從紅剔這種變化藍色掛鎖表示該變化Git中得到遏制,局部:

VS blue-lock

但是,當我看到修改後的文件的歷史記錄,是沒有的!

No history

我想在本地提交我的變化,並與TFS服務器同步他們。

的Visual Studio不會看到任何變化都:

VS TFS Changes

在命令行中我可以看到運行命令

git status 

了Git已經注意到了我所有的修改並看到許多未提交和未跟蹤文件的更改。

git status cmd

Looing在Git book我可以用

git add 

或者更具體地說

git add -u . 

到舞臺準備好提交文件,但我不願意這樣做,因爲Develop your app in a Git repository (track, commit) Visual Studio文檔指出:

Q: Where is the Git stage?
A: If you are an experienced Git user, you might have noticed that Visual Studio handles changes differently than the command prompt. You might have wondered if the Included Changes section contains your staged changes. In fact, Visual Studio usually bypasses the Git stage for you. When you commit changes, Visual Studio simultaneously stages and commits them. The one exception occurs when you add a file to your Git repository; Visual Studio does stage this kind of change.

Visual Studio的階段和提交同時發生變化。但是爲什麼它沒有列出我爲修改跟蹤文件所做的任何修改,從而讓我提交它們呢?

+0

請注意,我故意沒有標記這個'git',因爲它似乎是TFS和Visual Studio的Git工作流特有的。 – dumbledad 2015-02-11 12:47:05

+0

文件是否位於團隊資源管理器 - 更改/未記錄文件下? – 2015-07-08 17:28:08

+1

在Visual Studio「15」預覽中,它現在確實使用了git的階段。 – 2016-04-18 03:42:48

回答

47

這更是一個解決方法不是解釋的,但我發現,如果我忽略the documentation「當你提交修改時,Visual Studio同時階段,並承諾他們」,而是添加了修改與命令分期

git add -u . 

然後Visual Studio突然意識到修改並讓我在本地提交它們並與TFS服務器同步它們。此外,它將'新文件'綠十字放在我添加的文件上,我發現我可以做另一次提交,然後再進行另一次同步來提取我所做的添加和刪除。

從那時起,Visual Studio正在做我期望的事情:當我對文件進行更改時,文件在提交窗口中被更改列出。

我仍然不知道爲什麼Visual Studio沒有拿起變化,直到最初git add之後,但至少它現在起作用。

+3

已經保存了兩次:) – Darxis 2015-04-04 22:54:16

+1

值得讚賞的是所有的努力。 – Vhortex 2015-07-09 06:39:38

0

我在一臺全新的機器上安裝了VS2013 Update 5和VS 2015的新機器時遇到了這個問題,這讓我發瘋。然後我發現如果我安裝了Git for Windows,問題就消失了! https://git-for-windows.github.io/

5

我有同樣的probem,我意識到以下幾點: 爲了顯示該變更,作爲@dumbledad說,Visual Studio中運行命令

git add -u 

內部分期的更新。 如果您嘗試添加到變更集的某些文件被另一個進程打開,那麼git命令將獲得權限錯誤。而Visual Studio將不會顯示更改。

對我而言,我的回購協議中有一個文檔被另一個應用程序打開,導致Visual Studio因Git權限錯誤而不顯示修改。因此,請檢查您的git存儲庫的任何文件是否未被任何其他應用程序打開。

14

我不得不將此行添加到我的.gitignore:

[path to project]/node_modules/ 

顯然VS2015在那裏墜毀一些很長的道路上,而且只會決定放棄一切希望

+0

同意。我只是有一個角度項目的問題。 VS在node_modules和bower_components路徑上窒息而失敗。 – SouthShoreAK 2016-01-19 22:43:57

+0

感謝你我不會變得瘋狂! – Nock 2016-01-24 12:01:35

3

我使用VS 2015 Update 1也遇到了這個問題。此外,同時,VS的輸出窗口告訴我解決方案文件夾下的我的VC.opendb文件被另一個程序佔用。根據this,我解決了佔用問題:將*.VC.opendb*.VC.db添加到.gitignore文件中。然後一切順利。

+0

這對我有用。謝謝您的回答。 – 2016-07-11 17:43:31

0

然後我試圖做出更改,但文件沒有受到影響......有一個簡單的解決方案。主要的問題是你的混帳忽略文件忽略文件的..

打開本地回購比如d://回購,再看看文件,你想

- > d://回購/ PROJECT1/HomeViewModel。CS

- >右鍵點擊它,然後點擊Git的一些推廣

- >選擇+添加文件

enter image description here

- >然後強制選項

enter image description here

- >點擊Addfiles..Here你去你的文件將被添加更改

1

我遇到了與Visual Studio Update 3相同的問題。VS在本地保存,但沒有收到任何更改,因此我無法提交。

我從https://git-for-windows.github.io/(謝謝@fhilton)下載了Git for Windows,打開了開發者命令提示符並將目錄更改爲C:\ Repos \ Scheduler(我的源代碼的位置)。

我然後跑獲取附加-U並收到以下錯誤......

error: open("WindowsServices\Scheduler.WindowServices.InstallLog"): Permission Denied

error: unable to index file WindowsServices\Scheduler.WindowServices.InstallLog

fatal: updating files failed

正如其他人所說,它看起來像在Visual Studio中的GIT工具可以默默地消失,即使是最基礎的Windows級錯誤。更糟的是,它可以告訴你GIT完全同步。命令行當然是你的朋友。

3

刪除文件myProject\.git\index.lock修復了我的情況。

+0

這在VS 2017中適用於我,問題發生是因爲VS 2017在解除某些必須將'index.lock'文件保留在'.git'文件夾中的文件時崩潰,這些文件實際上告訴任何需要交互的程序與存儲庫,它已被使用。 – Lankymart 2017-09-12 13:21:22

+0

同樣在這裏。刪除myProject \ .git \ index文件。然後從分支中刪除更改(否則所有文件都標記爲已更改)。它的工作原理。 – 2017-11-23 02:20:51