Помилка злиття 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.