GIT 병합 오류 "파일 병합 해제로 인해 커밋 할 수 없습니다"


172

그래서 코드를 편집하기 전에 코드를 가져 오는 것을 잊어 버린 다음 새 코드를 커밋하고 푸시하려고 할 때 오류 푸시가 불가능합니다.이 시점에서 "git pull"을 수행하여 충돌이있는 일부 파일을 강조 표시했습니다. 충돌을 제거했지만 여기서 무엇을해야할지 모르겠습니다.

git commit다시 시도했지만 "파일을 병합 해제했기 때문에 커밋 할 수 없습니다"라는 메시지가 나타납니다.

답변:


244

충돌을 해결 한 경우 파일을 스테이지에 파일을 추가하고 git add [filename]정상적으로 커밋해야합니다.


2
내가 작업하지 않은 파일 인 경우 어떻게합니까? 그래도 계속 추가해야합니까? 그것을 다루는 가장 좋은 방법은 무엇입니까?
R11G

1
현재 지점으로 병합중인 지점에서 삭제 된 파일에 대해이 작업을 수행해야했습니다. 힘내는 그것을 충돌로 표시 했으므로 git add the_file병합을 커밋하기 위해 파일을 로컬로 삭제해야했습니다 .
Brendon Muir

충돌 목록을 찾는 방법?
polina-c

7
git status충돌하는 파일을 보여줄 것입니다
jonnystoten

의견을 보내 주셔서 감사합니다! 나는 git status그 파일을 사용 하고 발견했다 both deleted. WebStorm UI는 문제를 보여주지 않고 병합을 커밋 할 수 없다고 말했습니다. 해결되었습니다!
Yuri Predborski

52

두 가지를해야합니다. 먼저 변경 사항을 추가하십시오

git add .
git stash  

git checkout <some branch>

나에게 해결 된대로 문제를 해결해야합니다.


git add 만 필요하지는 않습니다. 충분하다
Rais Iqbal

3
또한 git add모든 작업 파일을 원하지 않는 경우에도 강력한 타자입니다.
courtsimas

11

당신이 사용할 수있는 git stash커밋을 수행하기 전에 (업스트림 리포지토리의 변경 사항을와 병합 한 후) 현재 리포지토리를 저장하는 데git stash pop . 어제 같은 문제가 발생했을 때이 작업을 수행해야했습니다.


1

이 오류는 충돌을 해결하지만 스테이지 영역에 파일을 추가해야 할 때 발생합니다. git add. 그것을 해결할 것입니다. 그런 다음 커밋하고 병합하십시오.


0

"병합되지 않은 경로"에서 파일을 제거하는 것과 비슷한 문제가 있습니다.

이 파일들은 git rm


0

위의 오류에서. 이 문제를 해결하려면 코드를 되 돌리면됩니다. ( git revert HEAD)를 누른 다음 git pull변경 사항을 다시 실행 한 다음 git pull다시 오류없이 커밋하거나 병합 할 수있었습니다.


0

git 2.23 (2019 년 8 월)부터는 바로 가기가 있습니다. 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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.