2015-02-11 22 views
49

Nie otrzymuję informacji o Git Visual Studio dla TFS.Visual Studio TFS Git nie widzi żadnych zmian

Sklonowałem rozwiązanie kolegi w Git na TFS i zacząłem dodawać kod. Później zrozumiałem, że muszę mój własny oddział dla zmian robiłem, i tak postępując zgodnie z instrukcjami w Push a new local branch to a remote Git repo and track it too Pobiegłem

git checkout -b e4ctim 
git push -u origin e4ctim 

Kiedy wprowadzić zmiany do mojego kodu visual studio pokazuje znajomy ikonę czerwony-Tick przez plik kod uspokoić mnie, że zmiana wywołała plik zostać wyrejestrowany:

VS red-tick

A potem, kiedy zapisać plik Visual Studio powraca ikonę na niebieskim kłódkę. Przypuszczam, że ta zmiana z czerwonych kleszcza na niebieskim kłódki oznacza, że ​​zmiana została sprawdzona w lokalnie w Git:

VS blue-lock

Ale kiedy patrzę na historię zmodyfikowanego pliku, nie ma nikogo!

No history

chciałbym popełnić moje zmiany lokalnie i synchronizować je z serwera TFS.

Visual Studio nie widać żadnych zmian w ogóle:

VS TFS Changes

Z wiersza polecenia widzę, że Git zauważył wszystkie moje modyfikacje uruchamiając komendę

git status 

i widząc wiele zmian nie wystawionych na pliki commit i untracked.

git status cmd

Looing na Git book mogę użyć

git add 

a dokładniej

git add -u . 

wystawić pliki gotowy do popełnienia ale jestem niechętny, aby to zrobić jak Dokumentacja programu Visual Studio w wersji Develop your app in a Git repository (track, commit) stwierdza:

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 wprowadza zmiany i jednocześnie wprowadza zmiany. Ale dlaczego nie zawiera żadnych zmian, które wprowadziłem do śledzenia plików jako zmian, a tym samym pozwalając mi je zatwierdzić?

+0

Zauważ, że celowo nie otagowałem tego 'git' jeszcze, ponieważ wydaje się on charakterystyczny dla workflow TFS i Visual Studio Git. – dumbledad

+0

Czy pliki znajdują się w Eksploratorze zespołu - Zmiany/Untrackowane pliki? –

+1

W podglądzie Visual Studio "15", teraz używa on stage git. –

Odpowiedz

47

To jest bardziej obejście niż wyjaśnienie, ale uważam, że jeśli ignorowane the documentation „kiedy zatwierdzić zmiany, Visual Studio jednocześnie etapy i zobowiązuje się je”, a zamiast tego dodaje modyfikacje do inscenizacji z poleceniem

git add -u . 

wtedy Visual Studio nagle dowiedział się o modyfikacjach i pozwól mi je zatwierdzić lokalnie i zsynchronizować je z serwerem TFS. Co więcej, położył "nowy plik" zielony krzyżyk na pliki, które dodałem i stwierdziłem, że mogę zrobić kolejne zatwierdzenie, a następnie kolejną synchronizację, aby pobrać dodatki i usunięcia, które zrobiłem.

Od tego czasu Visual Studio robi to, czego mógłbym oczekiwać: po wprowadzeniu zmian do pliku plik jest wymieniony jako zmieniony w oknie zatwierdzenia.

Nadal nie wiem, dlaczego Visual Studio nie podniosło zmian, dopóki po pierwszym git add, ale przynajmniej teraz działa.

+3

Zapisał mnie już dwa razy :) – Darxis

+1

Warto przegłosować wszystkie wysiłki. – Vhortex

0

Miałem ten problem na nowej maszynie ze świeżą instalacją VS2013 Update 5 i VS 2015 i to doprowadzało mnie do szału. Potem znalazłem, jeśli zainstalowałem Git dla Windows, problem zniknął! https://git-for-windows.github.io/

5

miałem ten sam probem i zdałem sobie sprawę, co następuje: W celu wykazania changeset, jak @dumbledad powiedział, Visual Studio uruchamia polecenie

git add -u 

wewnętrznie do inscenizacji aktualizacji. Jeśli niektóre pliki, które próbujesz dodać do zestawu zmian, są otwierane przez inny proces, to polecenie git otrzymuje błąd uprawnień. Visual Studio nie wyświetli zmian.

W moim przypadku miałem dokument w moim repozytorium, które zostało otwarte przez inną aplikację, i które spowodowało, że Visual Studio nie pokazywało modyfikacji z powodu błędu uprawnień Git. Sprawdź, czy któryś z plików twojego repozytorium git nie jest otwarty przez żadną inną aplikację.

14

musiałem dodać tę linię do mojego .gitignore:

[path to project]/node_modules/ 

Widocznie VS2015 został upaść na niektórych bardzo długiej drodze tam i po prostu decydują się porzucić wszelką nadzieję

+0

Uzgodnione. Właśnie miałem ten problem z kanciastym projektem. VS dusił się na ścieżce node_modules i bower_components i nie działał w trybie cichym. – SouthShoreAK

+0

dzięki Wam nie zwariuję! – Nock

3

używam VS 2015 Aktualizacja 1, a także rozwiązać ten problem. Ponadto w tym samym czasie okno wyjściowe VS powiedziało, że mój plik VC.opendb w folderze rozwiązania jest zajęty przez inny program. Zgodnie z this, naprawiłem problem z zajęciem: dodaj *.VC.opendb i *.VC.db do pliku .gitignore. Wtedy wszystko idzie dobrze.

+0

To zadziałało dla mnie. Dziękuję za Twoją odpowiedź. –

0

Potem próbowałem wprowadzić zmiany, ale pliki nie zostały wprowadzone ... Istnieje na to proste rozwiązanie. Głównym problemem jest to jeden z twoich git ignorować plików ignorowanie plików ..

Otwórz lokalne repo na przykład D: // repo, a następnie szukać pliku chcesz

-> D: // repo/project1/HomeViewModel.cs

-> kliknij prawym przyciskiem myszy i kliknij Git Extentions

-> Wybierz + Dodaj pliki

enter image description here

-> następnie opcję Siła

enter image description here

-> Kliknij przycisk Dodaj pliki. Dalej pojawi się plik zostanie dodany w zmianach

1

Miałem ten sam problem z aktualizacją Visual Studio Update 3. Usługa VS została zapisana lokalnie, ale nie wykryła żadnych zmian, więc nie mogłam go zatwierdzić.

Pobrałem Git dla Windows z https://git-for-windows.github.io/ (dzięki @fhilton), otworzyłem okno dialogowe Command Developer i zmieniono katalog na C: \ Repos \ Scheduler (lokalizacja mojego kodu źródłowego).

I pobiegł GET DODAJ -U i otrzymała następujący błąd ...

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

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

fatal: updating files failed

Jak mówili inni, to wygląda narzędzi GIT w Visual Studio może zabraknąć cicho, nawet dla najbardziej podstawowego systemu Windows błędy poziomu. Co gorsza, może powiedzieć, że GIT jest w pełni zsynchronizowany. Linia poleceń jest z pewnością twoim przyjacielem na razie.

3

usunąć plik myProject\.git\index.lock poprawiono w moim przypadku.

+0

To działało dla mnie w VS 2017, problem pojawił się, ponieważ VS 2017 zawiesił się podczas odstawiania niektórych plików, które musiały opuścić plik 'index.lock' w folderze' .git', który w efekcie mówi każdemu programowi, który chce wejść w interakcję z repozytorium, że jest już w użyciu. – Lankymart

+0

To samo tutaj. Usunięto plik myProject \ .git \ index. Następnie usuń zmiany z oddziału (w przeciwnym razie wszystkie pliki zostaną oznaczone jako zmienione). I działa. –

Powiązane problemy