Không thể thanh toán, tệp không được hợp nhất


85

Tôi đang cố gắng xóa tệp khỏi thư mục làm việc của mình nhưng sau khi sử dụng lệnh sau

git checkout file_Name.txt

Tôi nhận được thông báo lỗi sau

error: path 'first_Name.txt' is unmerged

Đó là gì và làm thế nào để giải quyết nó?

Sau đây là trạng thái git của tôi

$ 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")

Điều đó đã chuyển đến chỉ mục dàn dựng nhưng tôi không thể xóa thư mục explore_california /
Naseer

1
Nếu bạn muốn xóa explore_californiathì chỉ cần thực hiện rm -r explore_californiavì nó không bị git theo dõi.
breakfoot

Điều đó đã làm yêu cầu tôi xóa hơn 50 tệp riêng lẻ và tôi vẫn nhấn y?
Naseer

Nhưng cuối cùng thì nó cũng thành công.Thanx
Naseer

Câu trả lời:


28

Để xóa các tệp được theo dõi (first_file.txt) khỏi git:

git rm first_file.txt

Và để xóa các tệp không được theo dõi, hãy sử dụng:

rm -r explore_california

124

Nếu bạn muốn hủy các sửa đổi bạn đã thực hiện đối với tệp, bạn có thể thực hiện:

git reset first_Name.txt
git checkout first_Name.txt

2
Có cần lập luận gạch nối đôi không? git reset - first_name.txt và git checkout - first_name.txt
hedgehog mất

2
Bạn chỉ sử dụng --để tách cây bạn muốn kiểm tra khỏi các tệp bạn muốn kiểm tra. Để một sâu hơn trong lời giải thích, phải mất một chiến lợi phẩm ở đây: stackoverflow.com/questions/13321458/...
cristianoms

4
Tôi nghĩ sử dụng dấu gạch nối đôi sẽ an toàn hơn git reset -- first_Name.txtgit checkout -- first_Name.txtđề phòng trường hợp tên tệp giống với một trong các nhánh / thẻ / cam kết của bạn.
joeytwiddle

18

trạng thái cho bạn biết phải làm gì.

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

bạn có thể đã áp dụng một kho lưu trữ hoặc một cái gì đó khác gây ra xung đột.

thêm, đặt lại hoặc rm.


2
Chính xác là tôi đã áp dụng một kho lưu trữ. Bây giờ câu hỏi là khi nào sử dụng add, khi nào resetvà khi nào tôi sử dụng rm? Ví dụ: tôi không muốn giữ phiên bản đã lưu trữ mà thay vào đó là phiên bản từ ngược dòng?
Pro Backup

14

Sau đây là hiệu quả cho tôi

git reset HEAD

Tôi đã nhận được lỗi sau

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

Sau đó tôi chạy

git reset HEAD

nó đã làm việc


4

Tôi không nghĩ thực thi

 git rm first_file.txt

là một ý tưởng tốt.

  1. khi git thông báo các tệp của bạn không được hợp nhất, bạn nên đảm bảo rằng bạn đã cam kết.

  2. Và sau đó mở tệp xung đột:

    cat first_file.txt

  3. khắc phục xung đột

4.

git add file

git commit -m "fix conflict"

5. git push

nó sẽ làm việc cho bạn.


1

Trong trường hợp của tôi, tôi thấy rằng tôi cần tùy chọn -f. Chẳng hạn như sau:

git rm -f first_file.txt

để loại bỏ lỗi "hợp nhất nhu cầu".


0

tôi đã giải quyết bằng cách thực hiện 2 bước đơn giản dưới đây:

bước 1: git reset Đầu bước 2: git add.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.