분기를 전환하지 않고 '깃 풀'하는 방법(깃 체크아웃)?
나는 달리는 것에 익숙합니다.git pull
그리고 제가 일하고 있는 지점 내의 다른 명령들.하지만 여러 명이 작업하는 개발 서버를 설치했기 때문에, 저는 그것을 할 때 지점을 바꿀 필요가 없습니다.
만약 내가 우리 모두가 사용하는 github 저장소에서 dev 서버의 기존 브랜치를 업데이트하고 싶다면, 어떻게 하는 올바른 방법은 무엇입니까?
을 git pull github branchname
그것이 단순히 지점을 현재 지점으로 끌어들일 수 있습니까?
내가 찾을 수 있는 모든 Git 예제는 당신이 실행 중이라는 것을 나타내는 것 같습니다.checkout branchname
먼저, 그리고 나서 당기기를 하세요.저는 그것을 피하려고 노력하고 있습니다.말씀드렸듯이, 이것은 기존 지점이고 저는 단지 최신 버전으로 업데이트하고 싶습니다.
저는 같은 것을 찾고 있었고 마침내 다른 스택 오버플로 게시물에서 저에게 맞는 답을 찾았습니다.체크아웃을 사용하지 않고 Git 분기 병합, 업데이트 및 풀링
기본적으로:
git fetch <remote> <srcBranch>:<destBranch>
예:
git fetch origin branchname:branchname
현재 기능 변경사항을 커밋하거나 저장해야 하는 경우와 마스터 브랜치 체크아웃과 같은 문제가 있었습니다.pull
에서 로컬에 .master
하여 "기능 분기"를 합니다.rebase
마스터와 함께 최신 정보를 제공합니다.
이 모든 작업을 수행하려면 워크스페이스를 기능 분기에 유지하고 모든 전환을 방지해야 합니다.
git fetch origin master:master
git rebase master
그리고 그것은 묘기를 잘 부립니다.
체크아웃 없이 오리진 지점을 로컬 지점으로 업데이트하기 위해 다음 명령을 사용했습니다.git fetch 오리진 [BranchName]:[지점 이름]
다음 이후에 로컬 분기 팁을 다시 지정하려면git fetch
추가 단계가 필요합니다.
보다 구체적으로, 깃허브 레포에 가지가 있다고 가정합니다.D
,B
,C
,그리고.master
(이 홀수 분기 이름 집합에 대한 이유는 잠시 후에 명확해질 것입니다.).devhost
그리고 당신은 레포에 있습니다.origin
github repo는 github repo입니다.은 래그를 .git fetch
모든 업데이트합니다.origin/D
,origin/B
,origin/C
,그리고.origin/master
지금까지는 좋습니다.은 무슨요, 하만지금당일말원어다합니한고다를기나가언무지가신은▁but▁on.devhost
지방 지점으로D
,B
,C
및/는master
?
저는 다음과 같은 명백한 질문이 있습니다.
- 모든 지점의 팁을 업데이트하려는 이유는 무엇입니까?
- : 어가예지떤만약예(지가:▁(▁some▁branche▁what▁ifg,만)가 있다면 어떻게 합니까?
B
원격(github) 리포가 부족한 커밋이 있습니까?병합해야 합니까, 재배치해야 합니까, 아니면... - 만약 당신이 어떤 지점에 있다면요(예:
C
) 및 작업 디렉토리 및/또는 색인이 수정되었지만 커밋되지는 않았습니까? - 원격 repo에 새 분기가 추가된 경우(
A
) 및/또는 분기가 삭제됨(D
)?
(1)에 대한 답이 "왜냐하면devhost
실제로는 개발을 위한 것이 아니라 로컬 미러를 사용하여 모든 실제 개발자가 Github에서 천천히 읽는 대신 Github repo를 빠르게 읽을 수 있도록 로컬 미러를 사용합니다. 그러면 "일반" repo가 아닌 "미러"를 사용할 수 있습니다.작업 디렉토리가 없어야 하며, 푸시도 허용하지 않아야 하며, 이 경우 나머지 질문은 그냥 사라집니다.
다른 답이 있으면 (2-4)가 문제가 됩니다.
어쨌든 원격 참조를 기반으로 로컬 참조를 업데이트하는 방법은 다음과 같습니다(실행 후).git fetch -p
예):
for ref in $(git for-each-ref refs/remotes/origin/ --format '%(refname)'); do
local=${ref#refs/remotes/origin/}
... code here ...
done
에있는에 요?... code here ...
섹션은 질문(2-4)에 대한 답변에 따라 달라집니다.
사용하다
git fetch
대신.그러면 repo의 원격 참조 및 개체가 업데이트되지만 로컬 지점, HEAD 및 작업 트리는 그대로 유지됩니다.
언급URL : https://stackoverflow.com/questions/18857570/how-to-git-pull-without-switching-branches-git-checkout
'programing' 카테고리의 다른 글
다중 처리로 인해 Python이 충돌하고 fork()가 호출되었을 때 다른 스레드에서 진행 중이었을 수 있는 오류가 발생합니다. (0) | 2023.05.27 |
---|---|
C#과 VB.NET의 가장 중요한 기능적 차이점은 무엇입니까? (0) | 2023.05.27 |
NodeJS 및 NPM을 최신 버전으로 업데이트하려면 어떻게 해야 합니까? (0) | 2023.05.27 |
모든 열 머리글에서 텍스트 래핑을 활성화하려면 어떻게 해야 합니까? (0) | 2023.05.27 |
SQL Server Management Studio에서 헤더로 결과 저장 (0) | 2023.05.27 |