? git remote update
에 해당 git fetch
합니까?
답변
업데이트 : 추가 정보!
처음부터이 작업을 수행해야했습니다. Git 릴리스 노트를 Git ‘s Git repo (그래서 메타!)에 정리했습니다.
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 일 까지 출시되지 않았 으며 Original Poster는 2009 년 12 월 6 일에 질문을했습니다.
릴리스 노트에서 알 수 있듯이 Git 작성자는 git remote update
명령 기능이 약간 복제 되었다는 사실을 알고 git fetch
있었지만이를 제거하지 않기로 결정했습니다. 기존 스크립트 및 프로그램과의 호환성을 위해 또는 아마도 너무 많은 작업이며 우선 순위가 높은 항목이 있습니다.
자세한 내용이 포함 된 원본 답변
xenoterracide의 대답은 3.5 세이며, 힘내 (이 사라 졌 그 이후로 여러 버전을 통해 간 v1.6.5.5 이 글을 쓰는 현재의 v1.8.3.2로) 및보고 현재 에 대한 문서 git remote update
와 git fetch
보이는, 같은 그들 모두는 기본적으로 여러 개의 리모컨의 새로운 커밋을 가져 오는 동일한 기능을 수행 할 수 있는 권리 옵션 및 인수 주어진.
모든 리모컨을 가져 오는 중
여러 리모컨을 가져 오는 한 가지 방법은 다음 --all
플래그를 사용하는 것 입니다.
git fetch --all
remote.<name>.skipFetchAll
설정 하지 않은 것으로 가정하면 구성된 모든 원격에서 가져옵니다 .
true 인 경우 git-fetch (1) 또는 git-remote (1) 의 update 하위 명령을 사용하여 업데이트 할 때이 원격은 기본적으로 건너 뜁니다 . — git-config 문서
이것은 사용하는 것과 같습니다.
git remote update
가져올 원격 그룹을 지정하지 않고 remotes.default
repo 구성에서 설정 하지 않았으며 어떤 원격 도 remote.<name>.skipDefaultUpdate
true로 설정 하지 않았습니다 .
망할 놈의 구성에 대한 현재 1.8.3.2 문서는 언급하지 않는 remotes.default
설정을,하지만 난 그것에 대해 전능 구글 상담과에서이 도움이 설명 발견 Mislav Marohnić를 :
$ git config remotes.default 'origin mislav staging'
$ git remote update
# fetches remotes "origin", "mislav", and "staging"
remote update
명령에 의해 페치 될 기본 리모트 목록을 정의 할 수 있습니다 . 이들은 팀원, 오픈 소스 프로젝트의 신뢰할 수있는 커뮤니티 구성원 또는 이와 유사한 원격 사용자 일 수 있습니다.
따라서 remotes.default
설정 한 경우 일부 리모콘이 나열되어 git remote update
있지 않으면 리포지토리가 “인식”한 모든 리모콘을 가져 오지 않습니다.
에 관해서는 remote.<name>.skipDefaultUpdate
설정, 힘내 문서는 thusly 히 그것을 설명 :
true 인 경우 git-fetch (1) 또는 git-remote (1) 의 update 하위 명령을 사용하여 업데이트 할 때이 원격은 기본적으로 건너 뜁니다 .
지정된 리모트 그룹 가져 오기
대신 모든 리모컨을 가져 오는 중, 모두 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
여러 저장소 및 저장소 그룹을 지정하여 한 번에 가져올 수 있습니다 ( docs에서 ).
할 수있는 몇 가지
<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 fetch
및 git remote update
상기는 유일하지 않다. git rebase --onto
and와 비슷한 상황을 발견했습니다. 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
훨씬 세분화 될 수 있습니다.