Nie można wypisać, plik nie jest scalony


85

Próbuję usunąć plik z mojego katalogu roboczego, ale po użyciu następującego polecenia

git checkout file_Name.txt

Otrzymałem następujący komunikat o błędzie

error: path 'first_Name.txt' is unmerged

Co to jest i jak to rozwiązać?

Poniżej znajduje się mój status gita

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

To zostało przeniesione do indeksu przejściowego, ale nie jestem w stanie wyczyścić folderu explore_california /
Naseer

1
Jeśli chcesz usunąć, explore_californiapo prostu zrób a, rm -r explore_californiaponieważ nie jest śledzony przez git.
złamana

To spowodowało, że poprosiłem mnie o usunięcie więcej niż 50 plików indywidualnie i nadal naciskam y?
Naseer

Ale w końcu zadziałało. Thanx
Naseer

Odpowiedzi:


28

Aby usunąć śledzone pliki (first_file.txt) z git:

git rm first_file.txt

Aby usunąć nieśledzone pliki, użyj:

rm -r explore_california

124

Jeśli chcesz odrzucić zmiany wprowadzone w pliku, możesz wykonać:

git reset first_Name.txt
git checkout first_Name.txt

2
Potrzebuje podwójnego łącznika? reset git - first_name.txt i git checkout - first_name.txt
obłąkany jeż

2
Używasz tylko --do oddzielenia drzewa, które chcesz wypisać, od plików, które chcesz wypisać. Aby uzyskać bardziej szczegółowe wyjaśnienie, zdobądź łup tutaj: stackoverflow.com/questions/13321458/ ...
cristianoms

4
Myślę, że bezpieczniej jest użyć podwójnego myślnika git reset -- first_Name.txti git checkout -- first_Name.txtna wypadek, gdyby nazwa pliku była taka sama, jak jedna z twoich gałęzi / tagów / zatwierdzeń.
joeytwiddle

18

status mówi ci, co masz robić.

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

prawdopodobnie zastosowałeś skrytkę lub coś innego, co powoduje konflikt.

dodaj, zresetuj lub rm.


2
Dokładnie założyłem skrytkę. Teraz pytanie brzmi, kiedy używać add, kiedy reseti kiedy używać rm? Na przykład nie chcę zachować wersji ukrytej, ale zamiast tego wersję z upstream?
Pro Backup

14

Następujące działa dla mnie

git reset HEAD

Otrzymałem następujący błąd

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

Potem uciekłem

git reset HEAD

zadziałało


4

Myślę, że nie wykonuję

 git rm first_file.txt

to dobry pomysł.

  1. kiedy git zauważy, że twoje pliki nie są scalone, powinieneś upewnić się, że to zrobiłeś.

  2. A następnie otwórz plik konfliktu:

    cat first_file.txt

  3. napraw konflikt

4.

git add file

git commit -m "fix conflict"

5. git push

powinno działać dla Ciebie.


1

W moim przypadku stwierdziłem, że potrzebuję opcji -f. Takich jak następujące:

git rm -f first_file.txt

aby pozbyć się błędu „scalanie potrzeb”.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.