Помилка злиття GIT "фіксація неможлива, оскільки у вас немає вилучених файлів"


172

тому я забув витягнути свій код, перш ніж редагувати його, а потім, коли я вчинив новий код і намагався натиснути, я отримав помилку натискання не можливе, в цей момент я зробив "git pull", який зробив деякі файли з конфліктом виділено. Я усунув конфлікти, але не знаю, що звідси робити ..

Я спробував git commitще раз, але в ньому сказано, що "фіксація неможлива, тому що у вас є вилучені файли"

Відповіді:


244

Якщо ви вирішили конфлікти, вам потрібно додати файли до етапу git add [filename], а потім виконувати як звичайне.


2
Що робити, якщо це файли, над якими я не працював? Чи варто потім все-таки додавати їх? Який найкращий спосіб впоратися з цим?
R11G

1
Мені довелося це зробити для файлу, який було видалено з гілки, яку я об'єднав у поточну гілку. Git позначив це конфліктом, тому мені довелося видалити файл локально git add the_file, щоб здійснити злиття.
Брендон Муїр

як знайти список конфліктів?
polina-c

7
git statusпокаже вам файли, які мають конфлікти
jonnystoten

@jonnystoten дякую за ваш коментар! Я використав git statusі знайшов файл, який сказав both deleted. Користувальницький інтерфейс WebStorm не показав проблеми, а лише сказав, що не може здійснити злиття. Вирішено!
Юрій Предборський

52

Вам потрібно зробити дві речі. Спочатку додайте зміни за допомогою

git add .
git stash  

git checkout <some branch>

Це має вирішити ваше питання так, як воно вирішило мені.


Не потрібно лише додавання git. вистачило б
Раїс Ікбал

3
Крім того, це важкий нападник, якщо ви не хочете, щоб git addусі ваші робочі файли
courtimas

11

Ви можете використовувати git stashдля збереження поточного сховища перед тим, як виконати зобов’язання, яке ви хочете зробити (після об'єднання змін із репо-версією за течією git stash pop). Мені довелося це зробити вчора, коли в мене була така ж проблема.


1

Ця помилка виникає при вирішенні конфліктів, але файл все одно потрібно додати в сценічній області. git add. вирішив би це. Потім спробуйте скористатися і злитися.


0

У мене була подібна проблема, яка зводилася до видалення файлів у розділі "непідконтрольні шляхи"

Ці файли довелося видалити за допомогою git rm


0

Тож із помилки вище. Все, що вам потрібно зробити, щоб виправити цю проблему - це відновити код. ( git revert HEAD), git pullа потім повторіть свої зміни, потім git pullзнову і зможете зробити або об'єднатись без помилок.


0

З мерзотником 2.23 (серпень 2019) тепер у вас є ярлик , щоб зробити це: git restore --staged [filepath]. За допомогою цієї команди ви можете ігнорувати конфліктний файл, не потребуючи додавання та видалення цього.

Приклад:

> 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.