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”

Odpowiedzi:


244

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


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.


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.


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ć.


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


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.


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

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.