ข้อผิดพลาดในการรวมของ GIT“ ไม่สามารถกระทำได้เพราะคุณมีไฟล์ที่ไม่ได้รวมอยู่”


172

ดังนั้นฉันลืมที่จะดึงรหัสของฉันก่อนที่จะแก้ไขมันและเมื่อฉันมุ่งมั่นที่รหัสใหม่และพยายามที่จะผลักดันฉันได้รับข้อผิดพลาดในการผลักดันเป็นไปไม่ได้ ณ จุดนั้นฉันได้ "ดึง git" ซึ่งทำให้บางไฟล์ ฉันนำข้อขัดแย้งออก แต่ฉันไม่รู้จะทำอย่างไรจากที่นี่ ..

ฉันพยายามgit commitอีกครั้ง แต่มันบอกว่า "ไม่สามารถกระทำได้เพราะคุณมีไฟล์ที่ไม่ได้ถูกแยก"

คำตอบ:


244

If you have fixed the conflicts you need to add the files to the stage with git add [filename], then commit as normal.


2
What if those are the files I have not been working on? Should I then still add them? What is the best way to deal with it?
R11G

1
I had to do this for a file that was deleted in a branch that I was merging into the current branch. Git flagged it as a conflict, so I had to delete the file locally then git add the_file in order to commit the merge.
Brendon Muir

how to find list of conflicts?
polina-c

7
git status will show you the files that have conflicts
jonnystoten

@jonnystoten ขอบคุณสำหรับความคิดเห็นของคุณ! ผมใช้และพบแฟ้มที่กล่าวว่าgit status both deletedWebStorm UI ไม่แสดงปัญหาเพียง แต่กล่าวว่าไม่สามารถรวมได้ แก้ไข!
Yuri Predborski

52

คุณต้องทำสองสิ่ง ก่อนอื่นให้เพิ่มการเปลี่ยนแปลงด้วย

git add .
git stash  

git checkout <some branch>

ควรแก้ไขปัญหาของคุณตามที่ได้แก้ไขให้ฉัน


มันไม่จำเป็นต้องมีเพียงการเพิ่มคอมไพล์ จะพอเพียง
Rais Iqbal

3
นอกจากนี้ยังเป็น hitter หนักถ้าคุณไม่ต้องการgit addไฟล์งานทั้งหมดของคุณ
courtimas

11

คุณสามารถใช้git stashเพื่อบันทึกที่เก็บปัจจุบันก่อนที่จะทำการคอมมิทที่คุณต้องการ (หลังจากรวมการเปลี่ยนแปลงจาก repo upstream ด้วยgit stash pop) ฉันต้องทำเมื่อวานนี้เมื่อฉันมีปัญหาเดียวกัน


1

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณแก้ไขข้อขัดแย้ง แต่ยังจำเป็นต้องเพิ่มไฟล์ในพื้นที่สเตจ คอมไพล์เพิ่ม จะแก้มัน จากนั้นลองคอมมิชชันและผสาน


0

ฉันมีปัญหาที่คล้ายกันซึ่งต้มลงเพื่อลบไฟล์ภายใต้ "เส้นทางที่ไม่ได้รวม"

ไฟล์เหล่านั้นจะต้องถูกลบออกโดยใช้ git rm


0

ดังนั้นจากข้อผิดพลาดข้างต้น สิ่งที่คุณต้องทำเพื่อแก้ไขปัญหานี้คือเปลี่ยนรหัสของคุณใหม่ ( git revert HEAD) จากgit pullนั้นทำซ้ำการเปลี่ยนแปลงของคุณจากนั้นทำซ้ำgit pullอีกครั้งและสามารถคอมมิทหรือรวมได้โดยไม่มีข้อผิดพลาด


0

ตั้งแต่ git 2.23 (สิงหาคม 2019) ตอนนี้คุณมีทางลัดที่จะทำเช่นนั้น: git restore --staged [filepath]ตอนนี้คุณมีทางลัดที่จะทำว่า: ด้วยคำสั่งนี้คุณสามารถละเว้นไฟล์ที่ขัดแย้งโดยไม่จำเป็นต้องเพิ่มและลบไฟล์นั้น

ตัวอย่าง:

> 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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.