source

Git의 "우리가 병합할 수 있는 항목이 아닙니다" 오류를 해결하는 방법

ittop 2023. 5. 2. 22:59
반응형

Git의 "우리가 병합할 수 있는 항목이 아닙니다" 오류를 해결하는 방법

브랜치를 마스터링에 병합하는 동안 문제가 발생했습니다.먼저, 저는 실행을 통해 지점 이름을 얻었습니다.git ls-remote그 지점을 "지점 이름"이라고 부르자.나는 그 다음에 달렸습니다.git merge branch-name명령을 실행하여 다음과 같은 결과를 얻었습니다.

fatal: branch-name - not something we can merge

이 오류를 해결하려면 어떻게 해야 합니까?

병합할 없는 항목은 어떻게 발생합니까?에 나와 있는 것처럼 이 오류는 존재하지 않는 분기를 풀링하려고 하기 때문에 분기 이름의 오타에서 발생할 수 있습니다.

문제가 없으면(내 경우와 마찬가지로) 병합할 분기의 로컬 복사본이 없을 수 있습니다.Git는 두 분기를 병합하기 위해 두 분기에 대한 로컬 지식이 필요합니다.병합할 분기를 체크아웃한 다음 병합할 분기로 돌아가서 이 문제를 해결할 수 있습니다.

git checkout branch-name
git checkout master
git merge branch-name

이것은 작동해야 하지만 오류가 발생하면 다음과 같이 말합니다.

error: pathspec 'remote-name/branch-name' did not match any file(s) known to git.

분기를 체크아웃하기 전에 원격을 가져와야 합니다(반드시 "오프라인"은 아님).

git fetch remote-name

어리석은 제안이지만 지점 이름에 오타가 없는지 확인하십시오!

상류에서 때, 먼상에서끌때릴올어류,때,▁when먼▁from릴올끌,git fetch --all나를 위해 속임수를 썼습니다.

git remote add upstream [url to the original repo]
git checkout [branch to be updated]
git fetch --all
git merge upstream/[branch to be updated]

다른 경우에는 원격(원본, 업스트림) 분기가 존재하지 않는 경우 " 병합할 수 있는 항목이 없습니다" 오류도 발생합니다.당연한 것처럼 보일 수도 있지만, 당신은 당신이 하는 일을 발견할 수도 있습니다.git merge origin/develop유일하게 가지고 있는 보고서에포에.master.

저도 이 문제가 있었습니다.브랜치는 '사용자 이름/마스터'처럼 보였고, 정의한 원격 주소처럼 보여 깃을 혼동하는 것 같았습니다.이것을 사용하는 나를 위해.

git merge origin/username/master

완벽하게 잘 작동했습니다.

아래의 방법은 매번 저에게 효과가 있습니다.

git checkout master
git pull
git checkout branch-name-to-be-merged
git pull
git checkout branch-name
git pull
git merge branch-name-to-be-merged

해당 지점이 로컬에 없기 때문에 발생할 수 있습니다.병합 사용 전

git fetch origin

이 답변은 위의 질문과 관련이 없지만, 저는 비슷한 문제에 직면했고, 아마도 이것은 누군가에게 유용할 것입니다.아래와 같이 기능 분기를 마스터에 병합하려고 합니다.

$ git merge fix-load

이 경우 다음 오류 메시지가 표시됩니다.

병합: fix-load - 병합할 수 없는 항목

저는 모든 해결책을 살펴보았지만, 효과가 있는 것은 하나도 없었습니다.

저는 이 제 이름의 라는 것을 . , 은 내마침사, 저는지이철의문는것다라니을제습깨았병달, 은합이가름류오지점자름실점제▁(사▁finally▁name▁isact은병합다▁name▁on니▁a▁branch▁branch▁is▁cause▁(▁the▁i▁merge▁issue▁my,▁realizedually)fix-loads).

를사지않경이도오발있수다니습생할류가우에는용하▁if▁you▁error를 사용하지 않을 경우에도 이 오류가 발생할 수 있습니다.origin키워드와 지점은 사용자 자신의 것이 아닙니다.

git checkout <to-branch> 
git merge origin/<from-branch>

오늘 마스터에서 직접 끌어온 후 다른 브랜치를 내 브랜치로 병합할 때 이 문제가 발생했습니다. 먼저 병합하던 브랜치를 체크아웃하고 당겨야 했습니다. 그런 다음 이 브랜치를 내 브랜치로 성공적으로 병합할 수 있었습니다.

git checkout branch-to-merge
git pull
git checkout my-branch-name
git merge branch-to-merge

병합할 분기가 로컬 리포지토리에 없기 때문에 이 오류가 발생합니다.

먼저 다음 명령을 사용하여 마스터 분기로 병합할 brach를 체크아웃합니다.

git checkout branch_name_to_merge

그런 다음 다음 명령을 사용하여 마스터 분기와 병합해 보십시오.

git merge branch_name_to_merge

이 오류는 변경사항을 병합할 지점(예: 지점 이름)이 로컬에 없으므로 분기를 체크아웃하고 로컬 변경사항을 가져와야 함을 나타냅니다.마스터 분기에서 체크아웃하고 가져오기를 수행한 후 다음 단계를 수행합니다.

git checkout branch-name
git pull
git checkout new-branch-name
git merge branch-name

먼저 모든 지점 또는 찾으시는 지점이 있는지 확인하는 것이 좋습니다.

git branch -r

목록에서 확인합니다.

origin/HEAD -> origin/main
origin/feature/branch_1
origin/feature/branch_2
origin/feature/branch_3
origin/feature/branch_4
origin/feature/your branch

제안은 출발지에서 목록을 복사한 다음 수행하는 것입니다.git merge origin/feature/branch_2복사 붙여넣기는 오타 오류를 제거합니다.

▁a▁i▁when다▁error▁did니▁this▁got를 할 때 이 오류가 발생했습니다.git merge BRANCH_NAME "some commit message"커밋 메시지에 -m 플래그를 추가하는 것을 잊어버려서 지점 이름에 코멘트가 포함된 것으로 생각했습니다.

제 생각에 저는 제 지역 지점을 원격 repo로 매핑하는 것을 놓쳤습니다.저는 아래에서 했고 그것은 잘 작동했습니다.

git checkout master
git remote add origin https://github.com/yourrepo/project.git
git push -u origin master
git pull
git merge myBranch1FromMain

참조를 포함하는 문자열이 다른 Git 명령(또는 해당 사항에 대한 다른 셸 명령)에 의해 생성되는 경우, 마지막에 반환 캐리지가 포함되지 않았는지 확인합니다."git merge"에 문자열을 전달하기 전에 먼저 제거해야 합니다.

오류 메시지가 두 줄로 표시되기 때문에 이 문제가 발생하는 것은 매우 명백합니다.

merge: 26d8e04b29925ea5b59cb50501ab5a14dd35f0f9
 - not something we can merge

지점 이름에 쉼표(,)가 있어서 이 오류가 발생했습니다.우리는 로컬 브랜치를 삭제한 후 콤마 없이 새로운 이름으로 다시 확인했습니다.성공적으로 병합할 수 있었습니다.

제 경우에는 지점 이름에 문제가 있었습니다.새 지점 이름에 대괄호가 포함되어 있습니다. 이름을 바꾸고 대괄호를 제거하면 정렬됩니다.

답변이 늦은 것은 알지만 저도 같은 문제에 직면하여 다음 명령을 실행했습니다.

git checkout master

그리고 나서.

git pull origin branch-name

그것은 나의 문제를 해결했습니다.

후세를 위하여: 액스 이펙트가 말한 것처럼...오타가 없는 경우 로컬 지점 이름에 쉼표나 아포스트로피와 같은 우스꽝스러운 문자가 있는지 확인합니다.정확히 방금 저에게 일어난 일입니다.

병합하려는 지점으로 전환할 수 있는지 확인하는 것이 좋습니다.

병합할 지점이 로컬 리포지토리에 있고 철자 오류가 없는데도 이 오류가 발생했습니다.

지점으로 전환할 수 있도록 로컬 변경 사항을 무시했습니다(스택 또는 커밋도 선호할 수 있음).그 후 다시 초기 지점으로 전환하여 병합에 성공했습니다.

수 병하려는현에서재식별할수오없수으시십행하로므합분기를▁the▁which▁perform오시it십▁may수하병행▁branch합▁are▁not로▁g으없므▁atit▁you▁mergein서수▁try를 수행합니다.git branch하고, " 할합분존지않확는고인하지다수니존않행합으, "재면지하하재가기병다니"를 수행합니다."를합니다.git pull그리고 만약 당신이 한다면 지금.git branch분기가 이제분표이수제행다니합고시되기가다를 합니다.git merge <BranchName>

저도 같은 문제가 있었습니다.아래 명령을 사용하여 수정했습니다.

git checkout main
git fetch
git checkout branch_name
git fetch
git checkout main
git fetch
git merge branch_name

제 경우에는 git 저장소의 하위 디렉터리에서 git 명령을 실행하려고 했습니다.git로 초기화한 디렉토리가 해당 하위 디렉토리가 아닌 디렉토리인지 확인하십시오.

제 목표는 브랜치2 코드를 브랜치1로 통합하는 것입니다.

병합하는 동안 아래와 같은 메시지를 받았습니다.

제 지점은 지점1과 지점2입니다.프로젝트 폴더에서 이 분기를 사용하십시오.

처음에는 마스터가 있는 브랜치1만 있는데, 이 경우 아래와 같은 메시지를 받았습니다.

여기에 이미지 설명 입력

이제 브랜치2에 체크아웃했습니다.

이제 Branch1, Brnach2, master 모두 내 프로젝트 폴더에서 사용할 수 있습니다.

이제 병합 단계가 시작됩니다.

  1. git checkout Brnach1
  2. git 병합 분기2

마침내 Brnach2Branch1과 통합했습니다.

다음과 같은 여러 가지 이유가 있을 수 있습니다.

git merge dependabot/npm_and_yarn/storybook/addon-essentials-6.4.19
merge: dependabot/npm_and_yarn/storybook/addon-essentials-6.4.19 - not something we can merge
  1. 특수 문자가 포함된 지점 이름이 있습니다.(내 경우와 마찬가지로):솔루션:병합할 수 없는 분기에서 쉬운 이름의 새 분기를 체크아웃합니다.도움이 될 수 있습니다.
git checkout -b feature-addon
git checkout dev
git merge feature-addon

  1. 이 오류는 존재하지 않는 분기를 풀하려고 하기 때문에 분기 이름의 오타로 인해 발생할 수 있습니다.

  2. 매우 어리석지만 병합하려는 분기의 로컬 복사본이 없을 수 있습니다. ㅠㅠgit fetch이해하기 위해

이전 자습서를 따르는 경우 대신master분기 이름이 지정되었는지 확인합니다.main아니면 비슷한 것.

오류는 다음과 같습니다.branch-name지점 중 하나의 이름이어야 합니다.

오타를 방지하기 위해 할 수 있습니다.

git fetch --all -v

그런 다음 지점의 이름을 복사하여 수행합니다.

git checkout <branch-name>
git checkout master
git merge <branch-name>

저는 이것을 시도했을 때 문제가 발생했습니다.

git merge -s ours --no-commit --allow-unrelated-histories <remote name>/develop

그래서 사실은 제가 편지를 썼어야 했어요.master대신에develop마스터는 서브트리의 브랜치 이름이지 실제 브랜치가 아니기 때문입니다.

이상하게 들릴 수도 있지만 Git 이메일과 이름을 설정해야 합니다.

git config --global user.email "MY@EMAIL.COM"
git config --global user.name "FIRST_NAME LAST_NAME"

저에게 문제는 병합 메시지에 '이중 따옴표'를 넣는 것이었습니다.그래서 제가 더블 마크를 제거했을 때, 모든 것이 마법처럼 작동했습니다.저는 누군가를 돕고 싶습니다.(영어가 서툴러서 죄송합니다)

언급URL : https://stackoverflow.com/questions/16862933/how-to-resolve-gits-not-something-we-can-merge-error

반응형