Github 저장소에서 파일 가져오기 시도: "관련 없는 기록 병합 거부"
저는 깃을 배우고 있고, 깃 커뮤니티 책을 따라가고 있습니다.
이전에 (오래 전에) Github에 몇 개의 파일과 함께 공개 저장소를 만들었습니다.현재 컴퓨터에 로컬 Git 저장소를 설치하고 일부 파일을 커밋했습니다.그런 다음 원격 포인팅을 Github 페이지에 추가했습니다.
[root@osboxes c]# git remote add learnc https://github.com/michaelklachko/Learning-C
그것은 성공적인 것 같았습니다.
[root@osboxes c]# git remote show learnc
* remote learnc
Fetch URL: https://github.com/michaelklachko/Learning-C
Push URL: https://github.com/michaelklachko/Learning-C
HEAD branch: master
Remote branch:
master tracked
Local ref configured for 'git push':
master pushes to master (local out of date)
이제 Github repo에서 컴퓨터로 파일을 다운로드하고 싶습니다.제가 한 일은:
[root@osboxes c]# git fetch learnc
[root@osboxes c]# git merge learnc/master
warning: refname 'learnc/master' is ambiguous.
Already up-to-date.
그러나 로컬 디렉터리에 새 파일이 없습니다.그것들을 어떻게 구할 수 있습니까?
저는 또한 이것을 하려고 했습니다.
[root@osboxes c]# git pull learnc master
From https://github.com/michaelklachko/Learning-C
* branch master -> FETCH_HEAD
fatal: refusing to merge unrelated histories
BTW, 로컬로 마스터 브랜치에 있습니다(다른 브랜치가 없습니다).
[root@osboxes c]# git status
On branch master
nothing to commit, working directory clean
해라--allow-unrelated-histories
max630이 코멘트한 것처럼, 또는 여기서 설명한 것처럼 관련 없는 기록의 병합을 거부합니다.
git checkout master
git merge origin/master --allow-unrelated-histories
충돌을 해결한 다음
git add -A .
git commit -m "Upload"
git push
저는 사람들의 업무 문제를 차단하지 않는 것에 전적으로 찬성하지만, "push --force"나 "--allow_unrelated_histories"를 일반적인 해결책으로 새 사용자에게 가르쳐서는 안 된다고 생각합니다. 왜냐하면 처음에 왜 일이 제대로 작동하지 않는지 이해하지 못한 채 사용할 때 저장소에 심각한 혼란을 초래할 수 있기 때문입니다.
로컬 저장소에서 시작한 이런 상황에서 GitHub에서 작업을 공유할 원격을 만들고 싶을 때 주의해야 할 점이 있습니다.
새 온라인 리포지토리를 만들 때 "README로 리포지토리 초기화" 옵션이 있습니다.세부 인쇄를 읽으면 "기존 리포지토리를 가져오는 경우 이 단계를 건너뜁니다."라고 표시됩니다.
당신은 그 상자를 체크했을지도 모릅니다.마찬가지로, 초기 푸시를 시도하기 전에 온라인으로 추가/커밋을 수행했습니다.각 장소에서 고유한 커밋 기록을 생성하면 Nevermore의 답변에 언급된 특별한 허용량 없이는 조정할 수 없습니다(git은 사용자가 그런 식으로 운영되는 것을 원하지 않기 때문입니다).여기에 언급된 몇 가지 권장 사항을 따르거나, 다음 번에 일부 로컬 파일을 새 리모컨에 연결하려면 해당 옵션을 선택하지 마십시오. 이 옵션은 초기 푸시를 위해 원격을 깨끗하게 유지합니다.
참고: git + hub에 대한 저의 첫 경험은 이와 같은 문제에 부딪혀 무슨 일이 일어났고 왜 일어났는지 이해하기 위해 많은 것을 배운 것이었습니다.
분기에서 마스터라고 말하고 관련 없는 기록을 끌어다 허용합니다.
git pull origin master --allow-unrelated-histories
나를 위해 일했습니다.
(), 제하고 "Githubend", "readme"를 하는 것이 더을 알게 .git push -f
내 버전을 새 루트 커밋으로 만드는 것.
저는 그것이 조금 덜 복잡하다는 것을 발견했고, 모호한 깃발을 기억할 필요가 없으며, 역사를 좀 더 깨끗하게 유지합니다.
가 경한우용을 했을 때.--allow-unrelated-histories
이 명령은 충돌을 너무 많이 생성했습니다.제가 작업하지도 않은 파일에 충돌이 있었습니다.하려면 오를류극기위해하복위해▁to▁error" Refusing to merge unrelated histories"
다음 rebase 명령을 사용했습니다.
git pull --rebase=preserve --allow-unrelated-histories
이 후 커밋되지 않은 변경 사항을 커밋 메시지와 함께 커밋합니다.마지막으로 다음 명령을 실행합니다.
git rebase --continue
그 후 작업 복사본이 원격 복사본으로 최신 상태가 되어 변경 사항을 이전과 같이 적용할 수 있었습니다.풀링 중 관련 없는 기록 오류가 더 이상 발생하지 않습니다.
다음 명령을 실행합니다.
git pull origin master --allow-unrelated-histories
병합 VIM이 열립니다.병합 메시지를 추가하고 다음을 수행합니다.
- ESC를 누릅니다.
- Shift + ';'를 누릅니다.
- 'w'를 누른 다음 'q'를 누릅니다.
그리고 당신은 가도 좋습니다.
제 경우에도 같은 문제가 발생했습니다. 특히 Git 저장소를 원격으로 추가한 후 첫 번째 꺼내기 요청을 시도했습니다.다음 오류가 발생했습니다.
fatal: refusing to merge unrelated histories on every try
--allow-unrelated-histories 명령을 사용합니다.완벽하게 작동합니다.
git pull origin branchname --allow-unrelated-histories
언급URL : https://stackoverflow.com/questions/38255655/trying-to-pull-files-from-my-github-repository-refusing-to-merge-unrelated-his
'programing' 카테고리의 다른 글
"&(s->var)" vs "&s->var"에서처럼 구조체 포인터에서 구조체 멤버의 주소를 가져오려면 괄호가 필요합니까? (0) | 2023.08.15 |
---|---|
f:ajax on 이벤트 함수에 추가 매개 변수 전달 (0) | 2023.08.15 |
테스트 NG를 사용한 스프링 종속성 주입 (0) | 2023.08.15 |
jQuery - 클래스의 요소에서 속성 값 목록을 가져옵니다. (0) | 2023.08.15 |
가능한 AOP 사용 사례는 무엇입니까? (0) | 2023.08.15 |