Pesan galat Git Visual Studio 2015 "Tidak dapat menarik / beralih karena ada perubahan yang tidak dikomit"

Saya mengalami kesulitan dalam menjalankan dorongan dari origin . Saya terus menerima:

"Tidak mungkin untuk keluar karena ada perubahan yang tidak dikomit. Komit atau batalkan perubahan Anda sebelum Anda keluar lagi. Untuk detailnya, lihat jendela" Output ".

Ini juga berlaku untuk pemindahan cabang. Saya menerima pesan serupa, tetapi ini tidak selalu terjadi.

Saya menggunakan Visual Studio 2015 Pembaruan 1 dan Visual Studio Team Services Git. Di mesin saya, saya memiliki cabang master lokal dan cabang pengembangan. Setiap kali saya beralih ke master dan kemudian mengidam, saya mendapatkan pesan kesalahan. Saya terpaksa menyimpan dan melepas simpanan (baris perintah), dan kadang-kadang saya menggunakan TortoiseGit untuk melakukan keinginan, dan itu berhasil.

Apa yang aneh, bahkan jika saya mencoba mengembalikan (ke file yang tidak dikomit) menggunakan TortoiseGit, itu menunjukkan bahwa itu berhasil dikembalikan (saya sudah mencoba untuk membatalkan Visual Studio, tidak ada yang terjadi). Mencoba menariknya lagi masih merupakan masalah yang sama. Akan ada file yang tidak dikomit, dan kadang-kadang, ketika saya melakukan git status dikatakan bahwa tidak ada yang dikomit.

Hanya sebuah catatan: ini bisa terjadi bahkan setelah beralih dari cabang ke master . Dalam hal ini, tidak mungkin ada perubahan yang tidak diperbaiki, karena saya tidak bisa beralih di tempat pertama.

Saya masih baru di Git, tetapi saya ingin tahu apakah ada cara yang lebih baik untuk menyelesaikan masalah ini, karena saya ingin menggunakan lingkungan yang sama daripada beralih di antara lingkungan yang berbeda untuk setiap tugas; lebih mudah bagi saya untuk melakukan semuanya dari Visual Studio. Saya sudah membaca:

TFS / GIT di VS Tidak dapat beralih ke master, karena ada perubahan yang tidak dikomit

PEMBARUAN

Tampaknya masalah ini terhubung dengan ujung saluran.

git diff -R Anda akan melihat bahwa akhir baris, "^ M", ditambahkan, dan itu berbeda. Menghapus * text=auto in gitattributes (lalu memeriksa perubahan) dan mengaktifkannya kembali, sehingga gitattributes tidak memberi sinyal perubahan itu sendiri, yang seharusnya diperbaiki, sepertinya tidak membantu, sepertinya tidak ada perubahan, tidak akan ada perubahan.

47
15 апр. diatur oleh kwiri 15 Apr 2016-04-15 15:34 '16 pada 3:34 PM 2016-04-15 15:34
@ 12 jawaban

Bagi saya, saya tidak memiliki perubahan yang tidak dikomit atau file yang tidak terlacak, dan Visual Studio 2015 masih menyajikan peringatan.

  1. Tutup solusi di Visual Studio, keluar dari Visual Studio.
  2. Buka Git Bash (atau antarmuka pengguna Git favorit Anda)
  3. Buka repositori Anda (atau buka repositori menggunakan antarmuka Git)
  4. git pull (atau pull on Git UI)
  5. Ada gabungan (mudah-mudahan tidak ada konflik, seperti dalam kasus saya), vi terbuka (atau alat resolusi gabungan standar)
  6. :wq lalu tekan ENTER in vi (atau dengan tenang proses alat gabungan yang mungkin muncul sesuka hati), dan saya harap ini akan menyelesaikannya, sama seperti saya.
  7. Mulai Visual Studio 2015, buka proyek.

Saya menambahkan >

55
23 мая '16 в 2:14 2016-05-23 02:14 jawabannya diberikan Csaba Toth 23 Mei '16 pukul 2:14 2016-05-23 02:14

Masukkan git status pada baris perintah yang dibuka di direktori ini. Jika ada teks merah dan / atau hijau, Anda mengubah beberapa hal dan tidak menambah atau memperbaikinya. Baik kembalikan file (dengan menjalankan git checkout -- <file> ), atau tambah dan komit (dengan menjalankan git add --all , lalu git commit -m "commit message" ). Kemudian Anda dapat memeriksa cabang atau hal lain yang ingin Anda lakukan.

9
15 апр. Balas TechnicalTophat 15 Apr 2016-04-15 15:38 '16 pada 15:38 2016-04-15 15:38

Coba jalankan perintah ini dengan masuk ke direktori kerja proyek di baris perintah.

 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 апр. Balas diberikan oleh Dhruv pada 15 Apr 2016-04-15 15:55 '16 pada 15:55 2016-04-15 15:55

Masalah ini biasanya terjadi ketika ada file / perubahan yang tidak dilakukan secara lokal, tetapi termasuk dalam tindakan checkout.

Misalnya, Anda menambahkan file "test.txt" baru >

6
18 апр. Jawabannya diberikan oleh Eddie Chen - MSFT 18 Apr. 2016-04-18 06:20 '16 pada 6:20 2016-04-18 06:20

Itu kadang terjadi bahkan pada saya. Jika Anda menggunakan Visual Studio, ada cara mudah untuk memperjelas jalur Anda.

Untuk Visual Studio 2013 dan di atasnya, ikuti instruksi ini, karena berfungsi untuk saya:

  • Buka ToolsPackage Manager NuGetPackage Manager Console .
  • Ketik git reset dan tekan Enter.

Itu. Git akan diatur u>

VS2015: Peralatan> Package Manager Nuget> Package Manager Console. Bekerja seperti pesona. Terima kasih

1
24 апр. Balas diberikan oleh Yagnesh Khamar pada 24 April 2018-04-24 19:18 '18 pada 19:18 2018-04-24 19:18

Saya memiliki masalah ini di Visual Studio 2017, build 15.5, dan apa yang memperbaikinya bagi saya adalah pergi ke "Pengaturan Tim Explorer" → "Pengaturan Global" dan mengatur "Mempersingkat cabang jarak jauh selama pemilihan" dan "Pindahkan cabang lokal saat mengekstraksi "yang berarti" Kebenaran " .

2019

13 янв. Jawabannya diberikan oleh user1431356 13 Januari 2018-01-13 03:49 '18 pada 3:49 2018-01-13 03:49

Saya juga punya masalah ini. Solusi sederhana adalah saya memilih Komit untuk dipecahkan untuk melihat file yang tidak dikomit (atau Team Explorer → Perubahan mudah digunakan).

Lalu saya membatalkan setiap file menggunakan tombol kanan mouse. Saya biasa mengujinya dengan Undo pada seluruh solusi, tetapi tidak berfungsi dengan baik. Kemudian saya menggunakan Team Explorer → Sync → Tarik lagi, dan itu berhasil.

1
16 мая '18 в 9:16 2018-05-16 09:16 Jawaban diberikan oleh Elnaz pada 16 Mei '18 pukul 9:16 ; 2018-05-16 09:16

Bagi saya, "Pembaruan" dalam pertanyaan adalah jawabannya. Saya menambahkan file .gitattributes ke root repositori saya dan hanya menyertakan yang berikut ini, sehingga akhir baris akan dinormalisasi hanya ketika file tersebut adalah teks.

 *.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 нояб. Jawabannya diberikan oleh Josh 02 Nov. 2017-11-02 22:47 '17 pada 10:47 malam 2017-11-02 22:47

Bagi saya, masalah ini disebabkan oleh kehadiran dua file, "Web.Config" dan "web.config". Saya pikir ini normal di Linux / Unix, tetapi Windows hanya dapat menyimpan salah satunya secara lokal. Saya menemukan ini di devila biru memeriksa file. Saya menghapus salah satunya, dan masalahnya terpecahkan. Saya pikir masalah ini mungkin disebabkan oleh file apa pun.

0
11 окт. balasan yang diberikan oleh Emil Helldin 11 Okt 2018-10-11 10:18 '18 jam 10:18 malam 2018-10-11 10:18

Ini berhasil untuk saya. Saya hanya pergi ke direktori proyek dan memeriksa apakah ada sesuatu

 git status 

Saya kemudian melakukan traksi dengan

 git pull 

Kemudian saya me-restart Visual Studio 2015 dan mengeluarkan cabang yang menyebabkan kesalahan ini. Kali ini, tidak masalah. Tampaknya ini adalah bug di Visual Studio 2015. Itu hanya terjadi ketika Anda membatalkan perubahan sebelum memeriksa perubahan baru. Masalah yang sama sepertinya tidak ada di Visual Studio 2017.

0
16 авг. balasan yang diberikan oleh Rachit Chauhan 16 Agustus. 2018-08-16 07:54 '18 pada 7:54 2018-08-16 07:54

Berikut >

  1. Lihat jalur file yang tidak dikomit di jendela output
  2. Ikuti jalur ini dan hapus file ini dari folder.
  3. Buang perubahan dari Team Explorer ke Visual Studio untuk menambahkannya lagi.
0
17 авг. balasan yang diberikan oleh CSharp 17 Agustus. 2017-08-17 21:15 '17 pada 21:15 2017-08-17 21:15

Di Visual Studio buka Output Window dan alihkan " Show output from to" Source Control - git , git akan memberi tahu Anda apa yang menghentikannya. Tentu saja, salah satu alasan paling umum bisa jadi seperti ini:

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

Ini berarti bahwa 44 file telah ditambahkan ke repositori remote yang bukan bagian dari repositori local . Buka Git Bash dan jalankan perintah ini:

 git add * 

Ini dapat menyelesaikan masalah atau menyebabkan kesalahan seperti ini:

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

Jika Anda yakin Anda menambahkannya ke repositori local , cukup tambahkan dengan git add * -f atau hapus file yang ditambahkan secara salah dengan remote .

Semoga ini bisa membantu.

0
18 окт. Babak memposting 18 Okt 2018-10-18 07:02 '18 pada 7:02 pagi 2018-10-18 07:02