Galat gabungan GIT “komit tidak dimungkinkan karena Anda memiliki file yang tidak di-ungergasi”

172

jadi saya lupa untuk menarik kode saya sebelum mengeditnya dan kemudian ketika saya mengkomit kode baru dan mencoba untuk mendorong, saya mendapatkan push error tidak mungkin, pada saat itu saya melakukan "git pull" yang membuat beberapa file dengan konflik disorot. Saya menghapus konflik tetapi saya tidak tahu harus berbuat apa dari sini ..

Saya mencoba untuk git commitkembali tetapi mengatakan "komit tidak mungkin karena Anda memiliki file unmerged"

Kiarash
sumber

Jawaban:

245

Jika Anda telah memperbaiki konflik yang Anda perlu menambahkan file ke panggung dengan git add [filename], maka komit seperti biasa.

Jonnystoten
sumber
2
Bagaimana jika itu adalah file yang belum saya kerjakan? Haruskah saya masih menambahkannya? Apa cara terbaik untuk menghadapinya?
R11G
1
Saya harus melakukan ini untuk file yang dihapus di cabang yang saya gabungkan ke cabang saat ini. Git menandainya sebagai konflik, jadi saya harus menghapus file secara lokal kemudian git add the_fileuntuk melakukan penggabungan.
Brendon Muir
bagaimana cara menemukan daftar konflik?
polina-c
7
git statusakan menunjukkan kepada Anda file yang memiliki konflik
jonnystoten
@jonnystoten terima kasih atas komentar Anda! Saya menggunakan git statusdan menemukan file yang mengatakan both deleted. WebStorm UI tidak menunjukkan masalah, hanya mengatakan itu tidak dapat melakukan penggabungan. Terselesaikan!
Yuri Predborski
52

Anda perlu melakukan dua hal. Pertama tambahkan perubahan dengan

git add .
git stash  

git checkout <some branch>

Itu harus menyelesaikan masalah Anda seperti yang diselesaikan kepada saya.

Prabhakar Undurthi
sumber
Tidak hanya diperlukan git add. akan mencukupi
Rais Iqbal
3
Juga ini adalah pemukul berat jika Anda tidak ingin git addsemua file Anda bekerja
courtimas
11

Anda dapat menggunakan git stashuntuk menyimpan repositori saat ini sebelum melakukan komit yang ingin Anda buat (setelah menggabungkan perubahan dari repo hulu dengan git stash pop). Saya harus melakukan ini kemarin ketika saya memiliki masalah yang sama.

muman
sumber
2

Kesalahan ini terjadi ketika Anda menyelesaikan konflik tetapi file masih perlu ditambahkan di area panggung. git add. akan menyelesaikannya. Kemudian, cobalah untuk berkomitmen dan bergabung.

Priyanka Arora
sumber
0

Saya pernah mengalami masalah serupa yang bermuara pada menghapus file di bawah "jalur tidak terputus"

File-file itu harus dihapus menggunakan git rm

Yann VR
sumber
0

Jadi dari kesalahan di atas. Yang harus Anda lakukan untuk memperbaiki masalah ini adalah mengembalikan kode Anda. ( git revert HEAD) lalu git pulldan kemudian ulangi perubahan Anda, sekali git pulllagi dan dapat melakukan atau menggabungkan tanpa kesalahan.

appdesigns
sumber
0

Sejak git 2.23 (Agustus 2019) Anda sekarang memiliki cara pintas untuk melakukan itu: git restore --staged [filepath]. Dengan perintah ini, Anda bisa mengabaikan file yang konflik tanpa perlu menambah dan menghapusnya.

Contoh:

> git status

  ...
  Unmerged paths:
    (use "git add <file>..." to mark resolution)
      both modified:   file.ex

> git restore --staged file.ex

> git status

  ...
  Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
      modified:   file.ex

Macabeus
sumber