병합 후 커밋 시 Git 오류 - 치명적: 병합 중에 부분 커밋을 수행할 수 없습니다.
나는 뛰었습니다.git pull갈등으로 끝난 것입니다.저는 갈등을 해결했고 지금은 모든 것이 괜찮습니다(머지툴도 사용했습니다).
을 확된파커때로 때git commit file.php -m "message"오류가 발생했습니다.
fatal: cannot do a partial commit during a merge.
이전에도 같은 문제가 있었습니다.-a커밋이 완벽하게 작동했습니다.저는 모든 변경 사항을 적용하고 싶지 않기 때문에 완벽한 방법은 아니라고 생각합니다.저는 별도의 코멘트와 함께 파일을 별도로 커밋하고 싶습니다.내가 어떻게 그럴 수 있을까?Git에서는 병합 후 사용자가 파일을 개별적으로 커밋할 수 없는 이유는 무엇입니까?저는 이 문제에 대한 만족스러운 답을 찾을 수 없었습니다.
커밋 명령에 "-i"를 추가하면 이 문제가 해결된다는 것을 알게 되었습니다.-i는 기본적으로 커밋하기 전에 추가 파일을 준비하라고 말합니다.즉, 다음과 같습니다.
git commit -i myfile.php
git commit -am 'Conflicts resolved'
이것은 저에게 효과가 있었습니다.이것도 한번 드셔보세요.
사용할 수 있습니다.git commit -i 될 에는 대분의경우부, 그나작않을경우지동하이것그.
당신은 해야 합니다.git commit -m "your_merge_message"할 수 " " "라는 파일을 병합해야 .
- 합니다(
git add your_file.txt) git commit -m "your_merge_message"
나는 이것을 잊어버렸을 때 받았습니다.-m충돌을 때.git merge를 합니다.
git commit "commit message"
그래야 한다
git commit -m "commit message"
여러분은 아마도 약속을 위해 준비하지 않은 것에서 갈등을 겪었을 것입니다.Git은 당신이 독립적으로 일을 저지르지 못하게 할 것입니다(모든 것이 합병의 일부이기 때문입니다). 그래서 당신은 해야 합니다.git add에 그서철그다음에과류▁that다에▁and.git commit -m "Merge conflict resolution".-i에 대한 깃발.git commit당신을 위해 추가합니다.
커밋 명령에 대해 -m을 놓친 것 같습니다.
오류 메시지에 따르면 병합 후 부분 커밋을 수행할 수 없습니다.정당한 일을 저지르는 것.file.php모든 변경 사항을 커밋해야 합니다.
이게 통할 겁니다.
git commit -m "Fixing merge"
- 프로젝트 디렉토리로 이동
- 숨겨진 파일 표시(.git 폴더가 나타납니다.)
- .git 폴더 열기
- MERGE_HEAD 제거
- 다시 죄를 지다
- git가 당신에게 git가 잠겼다고 말했다면 .git 폴더로 돌아가서 index.lock을 제거합니다.
- 다시 한번 커밋합니다. 이번에는 모든 것이 잘 될 것입니다.
단히간git commit -m "comment"충돌을 해결한 후 작동해야 합니다.
작업 도중 병합이 중지되었습니다.파일을 추가한 다음 'git commit'해야 합니다.
git add file_1.php file_2.php file_3.php git commit
건배.
체리 따는 걸 버리고 원하는 대로 파일을 커밋하고 싶다면,
git reset --soft <ID-OF-THE-LAST-COMMIT>
당신을 거기에 데려다 줍니다.
소프트 리셋은 현재 HEAD를 가리키는 포인터를 지정한 커밋(ish)으로 이동하지만 파일은 변경하지 않습니다.하드 재설정은 포인터를 이동하고 모든 파일을 해당 커밋(ish) 상태로 되돌립니다.즉, 소프트 재설정을 사용하면 병합 상태를 지우지만 실제 파일에 대한 변경 사항은 유지한 다음 원하는 대로 개별적으로 커밋하거나 재설정할 수 있습니다.
.이것이 내 결심이었습니다.
커밋하기보다 다시 "추가"해야 했습니다.
$ git commit -i -m support.html "doit once for all" [master 18ea92e] support.html
때때로 충돌이 발생하고 수동 해결이 필요한 델타가 있는 경우 병합하는 동안이 경우 언급된 파일의 수동 해상도를 수정합니다.
자, 이제 문제를 제기하면,
git status Lib/MyFile.php
다음과 같은 출력이 표시됩니다.
On branch warehouse
Your branch and 'origin/warehouse' have diverged,
and have 1 and 1 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
All conflicts fixed but you are still merging.
(use "git commit" to conclude merge)
Changes to be committed:
modified: Lib/MyFile.php
이미 커밋을 준비했으므로 문제를 해결해야 합니다.
git commit
그리고 당신의 약속은 아무 문제 없이 끝날 것입니다.
모든 파일을 해결하기 전에 병합을 커밋하려고 했을 때 소스 트리에서 이 문제가 발생했습니다.그런 다음 마지막 파일을 해결된 것으로 표시했지만 커밋을 시도할 때 여전히 이 오류가 발생했습니다.소스 트리를 닫았다가 다시 열었더니 정상적으로 실행되었습니다.
저는 Xcode의 Source Control만을 사용하여 완전히 다른 접근 방식으로 이 문제를 해결했습니다.
배경:다른 팀이 변경 사항을 원격 Git 저장소에 푸시했습니다(빈스톡을 통해).제 쪽에서는 .xcodeproj 파일이 다른 디렉토리로 들어왔고, 변경 사항이 적용되지 않았습니다.나중에 커밋을 시도할 때 Xcode에서 Tree Conflict 오류가 발생했습니다.
Xcode를 사용하여 수정하는 것이 거의 불가능하기 때문에, 저는 그것을 교체했습니다..xcodeprojGit 서버에서 다운로드한 버전의 파일입니다. , 되었습니다.Xcode 프로젝트는 해결되는 것처럼 보였지만 손상된 Pull의 모든 업데이트는 내가 수행한 변경 사항으로 표시되고 커밋을 위해 준비되었습니다.
그러나 커밋을 시도할 때 여기에서 설명한 것과 동일한 "fatal: merge 중에 부분 커밋을 수행할 수 없음" 오류가 발생했습니다.
제가 문제를 해결한 방법은...(자, 이제 제가 초보 프로그래머라는 것을 이해합니다. 그래서 이해력이 부족할 수도 있습니다.하지만 저의 무지는 제가 이것을 할 다른 방법을 찾도록 이끌었습니다.)먼저 마스터 브랜치를 보조 브랜치로 복제하고 해당 브랜치로 전환했습니다.그런 다음 작업 복사본을 만들고 원래 프로젝트 디렉터리 외부에 해당 작업 복사본에 디렉터리를 배치했습니다. (이것이 필요한지는 모르겠지만 다른 문제 해결 기술을 읽었을 때 수행한 작업입니다.)그런 다음 마스터로 분기를 전환하여 준비된 파일(커밋 변경 사항)이 모두 사라졌습니다.모든 파일이 상대방의 최신 변경 사항으로 업데이트되도록 하기 위해 모든 파일을 복제하는 ThirdBranch라는 새 분기를 만들었습니다. Git Server에 Push it and Beanstalk가 내 서버 버전의 마스터 분기를 방금 푸시한 ThirdBranch 분기와 비교하도록 했습니다.그리고 상대방에 의한 모든 변경 사항은 내 Xcode에 있었습니다.이것은 내 마스터 리포지토리와 Git 마스터 리포지토리가 동일하다는 것을 의미하며, 이는 내가 Xcode를 사용하여 문제를 해결했음을 확인합니다.
어떻게 했는지 묻지 마 방금 설명한 것 이상으로...그리고 제가 빠뜨린 공백을 확실히 채워주세요.저는 이것에 대해 처음이고 모든 것을 이해하지 못합니다.경험이 풍부한 프로그래머가 관련 없는 정보를 분리하여 이 기술을 더 명확하게 재현할 수 있을 것입니다. 이것이 제가 이 글을 올리는 이유 중 하나입니다.
중복 질문에 대한 중복 답변입니다. 실패한 Xcode Git 병합이 고착되었습니다.
소스 트리 또는 다른 GUI를 사용하는 경우 병합 후 모든 파일이 선택되어 있는지 확인합니다.
병합하는 동안 Git는 모든 종류의 이유로 상위 분기를 추적하려고 합니다.당신이 하고 싶은 것은 그것이 보이는 대로 병합하는 것이 아닙니다.기본 재배치 또는 체리 선택을 수동으로 수행할 수 있습니다.
git commit -i -m 'merge message'나한텐 안 통했어요다음과 같이 적혀 있습니다.
fatal: No paths with --include/--only does not make sense.
FWIW, 저는 다음과 같은 메시지를 받고 있었기 때문에 관련 질문을 통해 여기에 왔습니다.
fatal: You have not concluded your merge (MERGE_HEAD exists).
나는 또한 머제툴을 시도했는데, 그것은 다음과 같습니다.No files need merging매우 혼란스럽습니다!따라서 MERGE_HEAD는 병합이 필요한 파일에 없습니다.
마지막으로, 이 방법을 사용하여 수정된 파일만 추가했습니다(추적되지 않은 파일이 있으므로 트리에 있는 모든 파일을 추가하지 않았습니다).
git ls-files -m | xargs git add
그리고 마침내 (!) 커밋하고 밀어 올릴 수 있었습니다.기트가 이러한 상황에서 무엇을 해야 하는지에 대한 더 나은 힌트를 준다면 정말 좋을 것입니다.
원본 트리에 있는 경우 충돌이 해결된 후 파일을 해결된 것으로 명시적으로 표시해야 합니다.충돌이 없는 것으로 방금 해결된 파일을 선택합니다.그런 다음 액션 -> 충돌 해결 -> 해결됨으로 표시합니다.파일이 여러 개인 경우 모두에 대해 동일한 작업을 수행합니다.지금 커밋합니다.
병합이 있는 경우 부분 커밋을 수행할 수 없습니다. 즉, 변경, 추가 또는 삭제된 모든 항목을 커밋해야 합니다.
제 경우, 파일이 삭제 대기 중이었지만 커밋에 포함되지 않았습니다.이를 포함하면 소스 트리에서 커밋이 정상적으로 수행됩니다(명령줄을 사용할 필요가 없었습니다).
체크인한 파일 바로 아래를 보세요, 커밋에 포함되지 않은 변경 사항이 있나요?
언급URL : https://stackoverflow.com/questions/5827944/git-error-on-commit-after-merge-fatal-cannot-do-a-partial-commit-during-a-mer
'programing' 카테고리의 다른 글
| 웹 드라이버를 사용하여 요소로 스크롤하시겠습니까? (0) | 2023.05.27 |
|---|---|
| Excel 행을 랜덤화하는 방법 (0) | 2023.05.27 |
| 전체 데이터 열에서 선행 또는 후행 공백 제거 (0) | 2023.05.27 |
| 가져오기 httplib 가져오기 오류: 이름이 httplib인 모듈이 없습니다. (0) | 2023.05.27 |
| Git 브랜치를 안전하게 마스터에 병합하려면 어떻게 해야 합니까? (0) | 2023.05.27 |

