programing

Git: 새 원격 분기를 볼 수 없습니다.

goodsources 2023. 6. 25. 18:46
반응형

Git: 새 원격 분기를 볼 수 없습니다.

동료가 새 원격 지점을 origin/dev/homepage에 푸시했는데 실행할 때 이 지점이 표시되지 않습니다.

$ git branch -r

기존의 원격 분기가 여전히 표시됩니다.

로컬 원격 참조가 최신이 아니기 때문인 것 같습니다. git pull은 현재 작동 중인 분기만 풀링하므로 git pull을 실행했을 때 아무 일도 발생하지 않았습니다.변경 사항이 있는 모든 분기를 해당 원격 분기로 푸시하는 깃 푸시와 달리?

먼저 명령을 사용하여 분기가 실제로 원격으로 푸시되었는지 다시 확인합니다.git ls-remote origin출력에 새 분기가 나타나면 다음 명령을 실행합니다.git fetch원격 저장소에서 지점 참조를 다운로드해야 합니다.

원격 분기가 여전히 나타나지 않으면 두 번 확인하십시오(에서).ls-remote출력) 원격의 지점 이름은 무엇이며, 구체적으로, 다음으로 시작하는 경우refs/heads/이는 기본적으로 다음 값이remote.<name>.fetch다음과 같습니다.

+refs/heads/*:refs/remotes/origin/*

이름이 다음으로 시작하는 원격 참조만refs/heads/로컬에서 원격 검색 참조로 매핑됩니다.refs/remotes/origin/(즉, 원격 감지 분기가 됨)

확인 여부.git/config포함하다

[remote "origin"]
    url = …
    fetch = +refs/heads/master:refs/remotes/origin/master

그렇다면 다음과 같이 변경합니다.

[remote "origin"]
    url = …
    fetch = +refs/heads/*:refs/remotes/origin/*

그러면 다음과 같이 사용할 수 있습니다.

$ git fetch
remote: Counting objects: …
remote: Compressing objects: ..
Unpacking objects: …
remote: …
From …
 * [new branch]            branchname -> origin/branchname
$ git checkout branchname
Branch branchname set up to track remote branch branchname from origin.
Switched to a new branch 'branchname'

가장 간단한 대답은 다음과 같습니다.

git fetch origin <branch_name>

릴리스/1.0.5를 검색한다고 가정합니다.

언제git fetch --all작동하지 않으며 원격 분기를 볼 수 없습니다.git branch -r이 분기를 표시하지 않습니다.

원격(지점, 태그 등)에서 모든 참조를 인쇄합니다.

git ls-remote origin검색 중인 원격 분기를 표시해야 합니다.

e51c80fc0e03abeb2379327d85ceca3ca7bc3ee5        refs/heads/fix/PROJECT-352
179b545ac9dab49f85cecb5aca0d85cec8fb152d        refs/heads/fix/PROJECT-5
e850a29846ee1ecc9561f7717205c5f2d78a992b        refs/heads/master
ab4539faa42777bf98fb8785cec654f46f858d2a        refs/heads/release/1.0.5
dee135fb65685cec287c99b9d195d92441a60c2d        refs/heads/release/1.0.4
36e385cec9b639560d1d8b093034ed16a402c855        refs/heads/release/1.0
d80c1a52012985cec2f191a660341d8b7dd91deb        refs/tags/v1.0

새 지점release/1.0.5출력에 나타납니다.

원격 분기 강제 가져오기:

git fetch origin <name_branch>:<name_branch>

$ git fetch origin release/1.0.5:release/1.0.5

remote: Enumerating objects: 385, done.
remote: Counting objects: 100% (313/313), done.
remote: Compressing objects: 100% (160/160), done.

Receiving objects: 100% (231/231), 21.02 KiB | 1.05 MiB/s, done.
Resolving deltas: 100% (98/98), completed with 42 local objects.
From http://git.repo:8080/projects/projectX
 * [new branch]        release/1.0.5 -> release/1.0.5

이제 로컬 참조도 있으므로 이 지점을 확인할 수 있습니다(또는 어떤 지점이든 확인할 수 있습니다.

잘했어요!

Git 원격 업데이트를 수행하면 원격 저장소에서 사용할 수 있는 분기 목록도 업데이트됩니다.

1.8.3.0 버전에서 ToroiseGit을 사용하는 경우 "Git -> Sync"를 수행할 수 있으며 창 왼쪽 하단에 "Remote Update" 버튼이 나타납니다.클릭하세요.그런 다음 "Git -> Switch/Checkout"을 수행하고 선택할 수 있는 분기 드롭다운에 새 원격 분기를 표시할 수 있습니다.

사소한 일처럼 들리지만, 제 문제는 제가 제대로 된 프로젝트에 참여하지 못했다는 것입니다.프로젝트에 참여해야 합니다. 그렇지 않으면 올바른 분기를 풀 수 없습니다.

나는 폭력을 사용하여 리모컨을 제거하고 추가했습니다.

git remote rm <remote>
git remote add <url or ssh>

을 결국 에게 효과적이었습니다.git fetch다음과 같은 명령:

git fetch core

이제 다음과 같이 모든 항목을 볼 수 있습니다.

git branch --all

원격지점/ngit fetch & git checkout 원격지점을 확인하실 수 있습니다.

언급URL : https://stackoverflow.com/questions/12762922/git-cannot-see-new-remote-branch

반응형