git 원격 업데이트와 가져 오기의 차이점?
-
13-09-2019 - |
문제
~이다 git remote update
동등한 git fetch
?
해결책
업데이트 : 자세한 정보!
나는 처음부터 이것을 했어야했다 : 나는 git 's git repo에서 git 릴리스 노트를 grep했다 (So Meta!).
grep --color=always -R -C30 fetch Documentation/RelNotes/* | less
그런 다음 나는했다 less
검색 --all
, 그리고 이것이 내가 찾은 것입니다 GIT 버전 1.6.6에 대한 릴리스 노트:
git fetch
배웠습니다--all
그리고--multiple
많은 저장소에서 가져 오는 옵션,--prune
부실한 원격 추적 브랜치를 제거하는 옵션. 이것들은 만듭니다git remote update
그리고git remote prune
덜 필요합니다 (제거 할 계획이 없습니다remote update
...도 아니다remote prune
, 그렇지만).
버전 1.6.6은까지 출시되지 않았습니다 2009 년 12 월 23 일, 그리고 원래 포스터는 2009 년 12 월 6 일에 그의 질문을했습니다.
릴리스 노트에서 볼 수 있듯이 Git의 저자는 git remote update
명령 기능은 다소 복제되었습니다 git fetch
, 그러나 그들은 그것을 제거하지 않기로 결정했거나 기존 스크립트 및 프로그램과의 뒤로 호환성을 위해 또는 너무 많은 작업이고 우선 순위가 높은 항목이 있기 때문에 아마도 우선 순위가 높기 때문입니다.
자세한 내용이있는 원본 답변
Xenoterracide의 답변 지금은 3.5 세이며 Git은 그 이후로 여러 버전을 겪었습니다 ( v1.6.5.5 이 글을 쓰는 시점에서 v1.8.3.2에) 현재의 문서화 git remote update
그리고 git fetch
, 그것은 그들처럼 보인다 둘 다 기본적으로 여러 리모컨에서 새로운 커밋을 가져 오는 것과 동일한 기능을 수행 할 수 있습니다., 올바른 옵션과 인수가 주어졌습니다.
모든 리모컨을 가져옵니다
여러 리모컨을 가져 오는 한 가지 방법은 다음과 같습니다 --all
깃발:
git fetch --all
이것은 당신이 가지고 있지 않다고 가정 할 때 구성된 모든 리모컨에서 가져올 것입니다. remote.<name>.skipFetchAll
그들을 위해 설정 :
사실 인 경우,이 리모컨은 사용을 업데이트 할 때 기본적으로 건너 뜁니다. git-fetch (1) 또는 업데이트 하위 명령 git-remote (1). — git-config 문서
이것은 사용과 동일합니다
git remote update
가져 오기 위해 원격 그룹을 지정하지 않고 remotes.default
Repo 구성에 설정되어 있으며 리모컨 중 어느 것도 remote.<name>.skipDefaultUpdate
True로 설정하십시오.
그만큼 현재 1.8.3.2 GIT 구성에 대한 문서 언급하지 않습니다 remotes.default
설정이지만 전능하신 Google과 상담 했고이 유용한 설명을 발견했습니다. Mislav Marohnić:
$ git config remotes.default 'origin mislav staging'
$ git remote update
# fetches remotes "origin", "mislav", and "staging"
기본 리모컨 목록을 정의 할 수 있습니다.
remote update
명령. 이들은 팀원의 리모컨, OpenSource 프로젝트의 신뢰할 수있는 커뮤니티 회원 또는 이와 유사 할 수 있습니다.
아마 당신이 있다면 아마도 remotes.default
설정하고 모든 리모컨이 나열되지는 않습니다. git remote update
REPO가 "인식"하는 모든 리모컨을 가져 오지 않을 것입니다.
에 관해서 remote.<name>.skipDefaultUpdate
환경, git 문서 이렇게 설명하십시오.
사실 인 경우,이 리모컨은 사용을 업데이트 할 때 기본적으로 건너 뜁니다. git-fetch (1) 또는 업데이트 하위 명령 git-remote (1).
지정된 리모컨 그룹을 가져 오기
모든 리모컨을 가져 오는 대신 둘 다 fetch
그리고 remote update
여러 가지 리모컨 및 리모컨 그룹을 지정할 수 있습니다.
git fetch [<options>] <group>
git fetch --multiple [<options>] [(<repository> | <group>)…]
git fetch [<options>] <group>
그룹의 일부인 여러 리모컨을 가져올 수 있습니다 (또 다른 예를 빌려주려면 MISLAV):
$ git config remotes.mygroup 'remote1 remote2 ...'
$ git fetch mygroup
git fetch --multiple
한 번에 가져올 여러 저장소 및 저장소 그룹을 지정할 수 있습니다 ( 문서):
몇 가지를 허용합니다
<repository>
그리고<group>
지정 될 인수. 아니<refspec>s
지정 될 수 있습니다.
모호성 git remote update
선적 서류 비치
그만큼 시놉시스 git remote update
명령 구문이 다음과 같습니다.
git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…]
마지막 부분을 주목하고 [(<group> | <remote>)…]
? 후행 점 ...
명령으로 여러 그룹과 리모컨을 지정할 수 있음을 암시합니다. git fetch --multiple
... 둘 사이의 구문이 어떻게 비슷한 지 보십니까?
그러나 동일한 문서에서 update
명령은 여러 그룹과 원격 인수를 지정하는 것에 대해 아무 말도하지 않습니다.
저장소에서 명명 된 리모컨 세트에 대한 업데이트를 가져 오기
remotes.<group>
.
따라서 확실하지 않습니다 git remote update
동일하게 작동합니다 git fetch --multiple
여러 개별 리모컨 및 여러 원격 그룹을 지정하는 것과 관련하여.
단일 리모컨을 가져옵니다
마지막으로, 모든 사람은 단일 리모컨을 가져 오는 간단한 사례를 알고 있습니다.
git fetch <remote>
당신이 사용할 수있는 경우 일 수도 있습니다.
git remote update <remote>
똑같은 일을하려면 이전 섹션에서 언급했듯이 git remote update
단일 이외의 다른 것을 가져올 수 있는지 여부에 대해 불분명합니다. 그룹 명령과 함께 리모컨의.
랩업
내가 설명했듯이 git fetch
그리고 git remote update
여러 리모컨의 가져 오기와 관련하여 비슷하게 행동하십시오. 그러나 비슷한 구문과 논쟁을 공유합니다 git fetch
더 짧기 때문에 사람들은 아마도 입력하고 사용하기가 더 쉽다는 것을 알게 될 것입니다.
그럴 수도 있습니다 git remote update
하나의 리모컨을 가져 오는 데 사용할 수 없습니다. git fetch
, 그러나 내가 지적했듯이, 문서는 이것을 명확하게하지 않습니다.
곁에
git 도자기 명령 간의 기능의 복제, git fetch
그리고 git remote update
위는 독특하지 않습니다. 나는 비슷한 상황을 발견했다 git rebase --onto
그리고 git cherry-pick
, 둘 다 새로운 기본 커밋에 패치하기 위해 다양한 커밋을 할 수 있습니다.
GIT가 수년에 걸쳐 진화 했으므로 일부 기능은 (필연적으로?) 복제되었으며 때로는 최종 사용자의 편의성으로 복제되었을 것입니다 (예 : 범위를 전달하는 것이 더 간단합니다. cherry-pick
, 범위를 선택하기 위해 단일 커밋을 반복해서 통과하는 것보다). 보기에 cherry-pick
다음과 같이 설명한 바와 같이 항상 커밋 범위를 받아들이지 않았습니다. v1.7.2 릴리스 노트:
git cherry-pick
범위의 커밋을 선택하는 법을 배웠습니다 (예 :cherry-pick A..B
그리고cherry-pick --stdin
), 그래서 그랬데git revert
; 이들은 더 좋은 시퀀싱 제어를 지원하지 않습니다rebase [-i]
그래도.
다른 팁
예 그리고 아니오. git remote update
하나뿐만 아니라 모든 리모컨에서 가져옵니다.
코드를 보지 않고 remote update
단지 쉘 스크립트 (가능)는 기본적으로 각 리모컨에 대한 페치를 실행합니다. git fetch
훨씬 더 세분화 될 수 있습니다.