Poruka o pogrešci Git Visual Studio 2015 "Ne mogu se izvući / prebaciti jer postoje nepromijenjene promjene"

Imam poteškoća u izvršavanju potiska iz origin . I dalje primam:

"Nemoguće je izvući jer postoje nepromijenjene promjene. Prije ponovnog povlačenja izvršite ili poništite promjene. Za detalje pogledajte prozor" Izlaz ".

To vrijedi i za prebacivanje grana. Primam sličnu poruku, ali to se ne događa uvijek.

Koristim Visual Studio 2015 Update 1 i Visual Studio Team Services Git. Na mom računalu imam lokalnu podružnicu i razvojnu granu. Svaki put kad se prebacim na master i zatim radim cravings, dobivam poruku o pogrešci. Poslužio sam se skrivenom i ispuštenom zalihom (komandna linija), a ponekad koristim TortoiseGit da radim žudnju, i ona radi.

Što je čudno, čak i ako pokušam vratiti (na neobjavljene datoteke) koristeći TortoiseGit, to pokazuje da je uspješno obnovljena (već sam pokušao otkazati Visual Studio, ništa se ne događa). I dalje je isti problem pokušati ga izvući. Bit će neobjavljenih datoteka, a ponekad, kad radim git status piše da ne postoji ništa za počinjenje.

Samo napomena: to se može dogoditi čak i nakon prebacivanja s grane na master . U ovom slučaju ne može doći do nepromijenjenih promjena, jer se na prvom mjestu nisam mogao prebaciti.

Još uvijek sam novi u Gitu, ali bih htio znati postoji li bolji način za rješavanje ovog problema, jer bih želio koristiti jedno okruženje umjesto prebacivanja između različitih okruženja za svaki zadatak; sve mi je lakše učiniti sve iz Visual Studio. Već sam pročitao:

TFS / GIT u VS Ne može se prebaciti na master, jer postoje nepromijenjene promjene

UPDATE

Čini se da je ovaj problem povezan s krajem linije.

git diff -R vidjet ćete da je dodan kraj retka, "^ M", i da je drugačiji. Uklanjanje * text=auto u gitattributes (zatim provjera za promjene) i ponovno omogućavanje, tako da gitattributes ne signalizira promjenu u sebi, koja bi trebala biti fiksna, ne čini se pomoći, neće biti promjena.

47
15 апр. postavio korisnik kwiri 15 tra 2016-04-15 15:34 '16 u 15:34 2016-04-15 15:34
@ 12 odgovora

Za mene nije bilo nikakvih nepromijenjenih promjena niti bilo kakvih nezaštićenih datoteka, a Visual Studio 2015 i dalje je prikazivao upozorenje.

  1. Zatvorite rješenje u Visual Studio, zatvorite Visual Studio.
  2. Otvorite Git Bash (ili svoje omiljeno korisničko sučelje Git)
  3. Idite u spremište (ili otvorite spremište pomoću sučelja Git)
  4. git pull (ili povucite Git UI)
  5. Postoji spajanje (nadamo se da nema sukoba, kao u mom slučaju), otvara vi (ili zadani alat za rješavanje spajanja)
  6. :wq zatim pritisnite ENTER u vi (ili mirno obradite alat za spajanje koji se može pojaviti po želji), i nadam se da će to riješiti, baš kao i ja.
  7. Pokrenite Visual Studio 2015, otvorite projekt.

Dodao sam još sigurniji korak po korak, dajući upute za zatvaranje i otvaranje rješenja i Visual Studio. Ovo može biti previše oprezno, a možda će biti dovoljno i ponovno podizanje sustava. Ovaj simptom može biti pogreška u integraciji s Visual Studio Git i može biti eliminiran u budućnosti.

55
23 мая '16 в 2:14 2016-05-23 02:14 odgovor je dat Csaba Toth 23. svibnja '16 u 2:14 2016-05-23 02:14

Unesite git status na naredbenom retku otvorenom u ovom direktoriju. Ako postoji crveni i / ili zeleni tekst, promijenili ste neke stvari i niste ih dodali ili popravili. Ili vratite datoteke (izvršavanjem git checkout -- <file> ), ili dodajte i predajte (izvršavanjem git add --all , zatim git commit -m "commit message" ). Tada možete provjeriti grane ili nešto drugo što želite učiniti.

border=0
9
15 апр. Odgovori TechnicalTophat 15. tra 2016-04-15 15:38 '16 u 15:38 2016-04-15 15:38

Pokušajte pokrenuti ove naredbe tako da odete u radni direktorij projekta na naredbenom retku.

 git add -A git commit -m "your message" git fetch origin master git pull origin master git push origin master //To push to the Git system 
8
15 апр. Odgovor dao Dhruv 15. travnja 2016-04-15 15:55 '16 u 15:55 2016-04-15 15:55

Taj se problem obično pojavljuje kada postoji datoteka / promjena koja nije izvršena lokalno, već je uključena u radnju preuzimanja.

Na primjer, dodajete novu datoteku "test.txt" izravno iz lokalne mape spremišta Git (izvan Visual Studio). Ova se datoteka može specificirati u parametru "Non-tracking files", stoga, kada se promjene izvrše, ova datoteka se ne prati i nije fiksna. A onda druga osoba također kreira "test.txt" s istim putem i popravlja ga i gura. Sada, kada izvršite akciju ekstrakcije, datoteka "test.txt" je uključena u akciju ekstrakcije, a primit ćete poruku o pogrešci koja pokazuje da postoje nepromijenjene promjene. Stoga morate provjeriti imate li datoteka / promjena koje nisu izvršene i popraviti ih prije izdvajanja.

6
18 апр. Odgovor daje Eddie Chen - MSFT 18. travnja. 2016-04-18 06:20 '16 u 6:20 2016-04-18 06:20

Ponekad se to događa i meni. Ako koristite Visual Studio, postoji jednostavan način da pojasnite svoj put.

Za Visual Studio 2013 i više, slijedite ove upute, jer radi za mene:

  • Idite na AlatiUpravitelj paketa NuGetKonzola Upravitelja paketa .
  • Upišite git reset i pritisnite Enter.

Jeste. Git će se resetirati, a zatim jednostavno možete dobiti svoj zahtjev.

VS2015: Alati> Upravitelj paketa Nuget> Konzola upravitelja paketa. Radio je kao šarm. Hvala vam.

1
24 апр. Odgovor dao Yagnesh Khamar 24. travnja 2018-04-24 19:18 '18 u 19:18 sati 2018-04-24 19:18

Imao sam ovaj problem u Visual Studio 2017, graditi 15,5, i ono što je fiksno za mene je da ide u "Team Explorer Postavke" → "Globalne postavke" i postaviti "Skratiti udaljene grane tijekom odabira" i "Premjesti lokalne grane pri vađenju "što znači" Istina " .

2019

13 янв. Odgovor daje korisnik1431356 13. siječnja 2018-01-13 03:49 '18 u 3:49 2018-01-13 03:49

Imao sam i taj problem. Jednostavno rješenje bilo je da sam odabrao Commit riješiti da vidim neobavezane datoteke (ili jednostavno koristiti Team Explorer → Promjene).

Zatim poništim svaku datoteku desnom tipkom miša. Nekada sam ga testirao s Poništi na cijelom rješenju, ali nije funkcionirao ispravno. Zatim sam ponovno koristio Team Explorer → Sync → Pull i to je uspjelo.

1
16 мая '18 в 9:16 2018-05-16 09:16 Odgovor je dao Elnaz 16. svibnja '18 u 9:16 sati , 2018-05-16 09:16

Za mene je "Update" u pitanju bio odgovor. Dodao sam datoteku .gitattributes u korijen spremišta i uključio samo sljedeće, tako da će se kraj redaka normalizirati samo kada je datoteka tekst.

 *.txt text *.html text *.css text *.js text # These files are text and should be normalized (Convert crlf => lf) *.gitattributes text .gitignore text *.md texttesting 
0
02 нояб. Odgovor daje Josh 02. studenog. 2017-11-02 22:47 '17 u 22:47 2017-11-02 22:47

Za mene je ovaj problem nastao zbog prisutnosti dvije datoteke, "Web.Config" i "web.config". Mislim da je to normalno u Linuxu / Unixu, ali Windows može pohraniti samo jedan od njih lokalno. Otkrio sam ovo u azurno-devopasnim pregledima dosjea. Izbrisao sam jednu od njih i problem je riješen. Mislim da ovaj problem može uzrokovati bilo koja datoteka.

0
11 окт. Odgovor dao Helemin Emil 11. listopada 2018-10-11 10:18 '18 u 22:18 sati 2018-10-11 10:18

Uspjelo mi je. Upravo sam otišao u direktorij projekta i provjerio postoji li nešto

 git status 

Tada sam izveo trakciju

 git pull 

Zatim sam ponovno pokrenuo Visual Studio 2015 i izvukao granu koja je uzrokovala ovu pogrešku. Ovaj put nema problema. Čini se da je to bio bug u Visual Studio 2015. Do njega dolazi samo kada poništite promjene prije provjere novih promjena. Čini se da isti problem ne postoji u Visual Studio 2017.

0
16 авг. odgovor od Rachit Chauhan 16 aug. 2018-08-16 07:54 '18 u 7:54 2018-08-16 07:54

Evo koraka koje sam slijedio:

  1. Pogledajte neobjavljeni put datoteke u izlaznom prozoru
  2. Slijedite ovu putanju i izbrišite tu datoteku iz mape.
  3. Odbacite promjene iz Team Explorera u Visual Studio da biste ih ponovno dodali.
0
17 авг. odgovor koji je dao CSharp 17 aug. 2017-08-17 21:15 '17 u 21:15 2017-08-17 21:15

U Visual Studio otvorite Output Window i prebacite " Show output from u" Source Control - git , git će vam reći što ga zaustavlja. Naravno, jedan od najčešćih razloga mogao bi biti takav:

 The pull would overwrite your local changes to the following 44 files: <Here you can probably see a list of 44 files> 

To jednostavno znači da je u remote spremište dodano 44 datoteke koje nisu dio local spremišta. Otvorite Git Bash i pokrenite ovu naredbu:

 git add * 

To može riješiti problem ili dovesti do pogreške poput ove:

 $ git add * The following paths are ignored by one of your .gitignore files: TestResults Use -f if you really want to add them. 

Ako ste sigurni da ih dodajete u local spremište, jednostavno ih dodajte s git add * -f ili obrišite pogrešno dodane datoteke remote .

Nadam se da ovo pomaže.

0
18 окт. Babak je objavio 18. listopada 2018-10-18 07:02 '18 u 7:02 am 2018-10-18 07:02