ไม่สามารถชำระเงินไฟล์ถูกยกเลิกการผสาน


87

ฉันพยายามลบไฟล์ออกจากไดเร็กทอรีการทำงานของฉัน แต่หลังจากใช้คำสั่งต่อไปนี้

git checkout file_Name.txt

ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้

error: path 'first_Name.txt' is unmerged

นั่นคืออะไรและจะแก้ไขได้อย่างไร?

ต่อไปนี้คือสถานะคอมไพล์ของฉัน

$ git status
On branch master
You are currently reverting commit f200bf5.
  (fix conflicts and run "git revert --continue")
  (use "git revert --abort" to cancel the revert operation)

Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add <file>..." to mark resolution)

        both modified:      first_file.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        explore_california/

no changes added to commit (use "git add" and/or "git commit -a")

ที่ย้ายไปที่ดัชนีการจัดเตรียม แต่ฉันไม่สามารถล้างโฟลเดอร์ explore_california /
Naseer

1
หากคุณต้องการลบให้explore_californiaทำrm -r explore_californiaเนื่องจาก git ไม่ได้ติดตาม
หักเท้า

สิ่งที่ขอให้ฉันลบมากกว่า 50 ไฟล์ทีละไฟล์และฉันยังคงกด y อยู่?
Naseer

แต่มันก็ใช้ได้ในที่สุดขอบคุณ
Naseer

คำตอบ:


29

ในการลบไฟล์ที่ติดตาม (first_file.txt) ออกจาก git:

git rm first_file.txt

และในการลบไฟล์ที่ไม่ถูกติดตามให้ใช้:

rm -r explore_california

130

หากคุณต้องการยกเลิกการแก้ไขที่คุณทำกับไฟล์คุณสามารถทำได้:

git reset first_Name.txt
git checkout first_Name.txt

2
ต้องการอาร์กิวเมนต์ยัติภังค์คู่? git reset - first_name.txt และ git checkout - first_name.txt
demented hedgehog

2
คุณใช้--เพื่อแยกโครงสร้างที่คุณต้องการเช็คเอาต์จากไฟล์ที่คุณต้องการเช็คเอาต์เท่านั้น หากต้องการคำอธิบายเชิงลึกยิ่งขึ้นไปที่นี่: stackoverflow.com/questions/13321458/…
cristianoms

4
ฉันคิดว่ามันปลอดภัยกว่าที่จะใช้ยัติภังค์สองชั้นgit reset -- first_Name.txtและgit checkout -- first_Name.txtในกรณีที่ชื่อไฟล์เหมือนกับหนึ่งในสาขา / แท็ก / คอมมิตของคุณ
joeytwiddle

18

สถานะบอกคุณว่าต้องทำอย่างไร

Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add <file>..." to mark resolution)

คุณอาจใช้ที่ซ่อนหรืออย่างอื่นที่ทำให้เกิดความขัดแย้ง

เพิ่มรีเซ็ตหรือ rm


2
แน่นอนฉันใช้ที่ซ่อน ตอนนี้คำถามคือจะใช้addเมื่อไหร่resetและใช้เมื่อไหร่rm? ตัวอย่างเช่นฉันไม่ต้องการเก็บเวอร์ชันที่ซ่อนไว้ แต่เวอร์ชันจากต้นน้ำแทน
Pro Backup

16

ต่อไปนี้ใช้ได้ผลสำหรับฉัน

git reset HEAD

ฉันได้รับข้อผิดพลาดต่อไปนี้

git stash
src/config.php: needs merge
src/config.php: needs merge
src/config.php: unmerge(230a02b5bf1c6eab8adce2cec8d573822d21241d)
src/config.php: unmerged (f5cc88c0fda69bf72107bcc5c2860c3e5eb978fa)

จากนั้นฉันก็วิ่ง

git reset HEAD

มันได้ผล


4

ฉันไม่คิดว่าจะดำเนินการ

 git rm first_file.txt

เป็นความคิดที่ดี

  1. เมื่อคอมไพล์สังเกตว่าไฟล์ของคุณถูกยกเลิกการผสานคุณควรตรวจสอบให้แน่ใจว่าคุณได้ทำการคอมมิตแล้ว

  2. จากนั้นเปิดไฟล์ข้อขัดแย้ง:

    cat first_file.txt

  3. แก้ไขความขัดแย้ง

4.

git add file

git commit -m "fix conflict"

5. git push

มันควรจะเหมาะสำหรับคุณ


1

ในกรณีของฉันฉันพบว่าฉันต้องการตัวเลือก -f ดังต่อไปนี้:

git rm -f first_file.txt

เพื่อกำจัดข้อผิดพลาด "ต้องผสาน"


0

ฉันแก้ไขได้โดยทำตามขั้นตอนง่ายๆด้านล่าง 2 ขั้นตอน:

ขั้นตอนที่ 1: คอมไพล์รีเซ็ตหัวหน้าขั้นตอนที่ 2: คอมไพล์เพิ่ม

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