Błąd scalania GIT „zatwierdzenie nie jest możliwe, ponieważ masz niescalone pliki”

172

więc zapomniałem wyciągnąć kod przed jego edycją, a kiedy popełniłem nowy kod i spróbowałem wypchnąć, otrzymałem błąd, że push nie jest możliwy, w tym momencie wykonałem "git pull", który spowodował wyróżnienie niektórych plików z konfliktami. Usunąłem konflikty, ale nie wiem, co mam teraz zrobić.

Próbowałem git commitponownie, ale pojawia się komunikat „zatwierdzenie nie jest możliwe, ponieważ masz niescalone pliki”

Kiarash
źródło

Odpowiedzi:

244

Jeśli naprawiłeś konflikty, musisz dodać pliki do sceny za pomocą git add [filename], a następnie zatwierdź normalnie.

jonnystoten
źródło
2
A jeśli to są pliki, nad którymi nie pracowałem? Czy powinienem nadal je dodawać? Jak najlepiej sobie z tym poradzić?
R11G
1
Musiałem to zrobić dla pliku, który został usunięty w gałęzi, którą scalałem z bieżącą gałęzią. Git oznaczył to jako konflikt, więc musiałem usunąć plik lokalnie git add the_file, aby zatwierdzić scalenie.
Brendon Muir
jak znaleźć listę konfliktów?
polina-c
7
git statuspokaże pliki, w których występują konflikty
jonnystoten
@jonnystoten dzięki za komentarz! Użyłem git statusi znalazłem plik, który powiedział both deleted. Interfejs użytkownika WebStorm nie pokazał problemu, po prostu powiedział, że nie może wykonać scalenia. Zdecydowany!
Yuri Predborski
52

Musisz zrobić dwie rzeczy. Najpierw dodaj zmiany za pomocą

git add .
git stash  

git checkout <some branch>

Powinien rozwiązać twój problem tak, jak rozwiązał mnie.

Prabhakar Undurthi
źródło
Nie jest wymagane tylko dodanie git. wystarczy
Rais Iqbal
3
Jest to również ciężki hitter, jeśli nie chcesz, aby git addwszystkie twoje pliki robocze
courtimas
11

Możesz użyć, git stashaby zapisać bieżące repozytorium przed wykonaniem zatwierdzenia, którego chcesz dokonać (po scaleniu zmian z repozytorium nadrzędnego git stash pop). Musiałem to zrobić wczoraj, kiedy miałem ten sam problem.

człowiek
źródło
1

Ten błąd występuje, gdy rozwiązujesz konflikty, ale nadal trzeba dodać plik w obszarze stołu montażowego. git add. rozwiązałoby to. Następnie spróbuj zatwierdzić i scalić.

Priyanka Arora
źródło
0

Miałem podobny problem, który sprowadzał się do usuwania plików z „niescalonych ścieżek”

Pliki te trzeba było usunąć za pomocą git rm

Yann VR
źródło
0

A więc z powyższego błędu. Wszystko, co musisz zrobić, aby rozwiązać ten problem, to przywrócić kod. ( git revert HEAD), git pulla następnie ponownie wprowadź zmiany, a następnie git pullponownie i był w stanie zatwierdzić lub scalić bez błędów.

appdesigns
źródło
0

Od git 2,23 (sierpień 2019), teraz masz skrót do zrobienia, że: git restore --staged [filepath]. Za pomocą tego polecenia można zignorować plik będący w konflikcie bez konieczności jego dodawania i usuwania.

Przykład:

> 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

Makabeus
źródło