programing

단일 분기 클론을 "실행 취소"하려면 어떻게 해야 합니까?

goodsources 2023. 8. 24. 21:59
반응형

단일 분기 클론을 "실행 취소"하려면 어떻게 해야 합니까?

나는 복제를 사용하여 복제했습니다.

git clone -b <branch name> --single-branch <github url> <target directory>

이 분기만 복제되었지만 이제 마스터 및 다른 분기로 전환하려고 합니다.그것을 지우고 나머지 레포를 복제하기 시작하는 것 외에 -- 단일 분기 기본 설정을 취소할 수 있는 방법이 있습니까?

Git에게 다음과 같이 모든 가지를 당기라고 말할 수 있습니다.

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin

찾아보면,.git/config다음과 같이 보일 것입니다.

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = false
[remote "origin"]
    url = https://github.com/owner/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
    rebase = true

저는 이것을 완전한 클론과 비교했고, 유일한 차이점은 아래의 "fetch"라는 것을 보았습니다.[remote "origin"].

참고: Git 버전 1.8.2를 실행하고 있습니다.이전 버전의 Git를 실행하는 경우 구성 옵션이 변경되었을 수 있습니다.만약 내 명령이 작동하지 않는다면, 나는 다음과 같은 것들을 훑어보는 것을 추천합니다..git/config당신이 비슷한 것을 볼 수 있는지 보기 위해.

단일 분기를 추가하려는 경우 다음을 수행할 수 있습니다.

git remote set-branches --add origin [remote-branch]
git fetch origin [remote-branch]:[local-branch]

Git 버전 1.9.1과 함께 작동합니다.

다음을 사용하여 복제된 다른 원격 분기를 로컬 리포지토리에 추가하려면 다음과 같이 하십시오.--single-branch다음은 나에게 효과가 있습니다.

git remote set-branches --add origin [remote-branch]
git fetch
git checkout [remote-branch]

다음에 와일드카드를 사용할 수도 있습니다.[remote-branch],예.

git remote set-branches --add origin release-1.*
git fetch
git checkout release-1.5

이 작업은 Git 버전 2.21.1을 사용하여 수행됩니다.git fetch origin [remote-branch]:[local-branch]로컬 분기를 추적되지 않은 상태로 만들기 때문에 작동하지 않았습니다.실행 시git pull처음에 원격 지점의 모든 커밋을 내 로컬 커밋에 다시 병합하려고 했습니다.

나는 일을 했습니다.

git remote remove origin
git remote add origin https://*<yourPath>*.git
git fetch

원래 repo를 새 리모컨으로 추가하고 거기서 작업하면 됩니까?

git remote add path/to/myrepo myNewOrigin
git fetch myNewOrigin

원하는 경우 현재 '오리진' 리모컨을 삭제하고 'MyNewOrigin'의 이름을 '오리진'으로 변경할 수도 있습니다.

여기서 풀/병합/베이스를 바꿀 수 있습니다.

그냥 바꾸기.git/config로컬 레포의 파일, 라인fetch[remote origin] section.

이런 일이 있기 전에

[remote "origin"]
    url = https://github.com/owner/repo.git
    fetch = +refs/heads/master:refs/remotes/origin/master

그렇게 된 후에

[remote "origin"]
    url = https://github.com/owner/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

처음에 도미닉 팔락의 답변을 적용했는데 효과가 있었습니다.하지만 새로운 지점에 코드를 더 많이 적용한 후에는 더 이상의 변경 사항을 적용할 수 없었습니다.

재설정하는 다른 방법이 있습니다.single-branch여기서 언급되지 않은 모든 것:

git remote remove origin
git remote add origin git@gitlab.com:{yourProject}/{yourRepo}.git
git branch --set-upstream-to=origin/{yourBranch}  {yourBranch}
git pull

이렇게 하면 모든 항목이 원래대로 재설정됩니다.

언급URL : https://stackoverflow.com/questions/17714159/how-do-i-undo-a-single-branch-clone

반응형