어떻게 사용할 수 merge-base
와 함께 Git
그것을 확인하지 않고 원격 저장소에? 사용 ls-remote
이 같은 지점을 결정하기위한 작업을 미세의 예를 :
git ls-remote --heads $REPO_URL/$REPO_NAME
문서 의 사용 어떠했는지, 어떤 단서를 포함하지 merge-base
와이 ls-remote
가능하다. 대안을 사용 merge-base
하여 분기 / 커밋의 공통 조상을 찾는 것도 가능할 수 있습니다 .
지금은 저장소를 로컬로 체크 아웃해야하는데 큰 프로젝트에는 많은 시간이 걸립니다.
일반적으로 no : ls-remote
요청 된 참조에 대한 원격 커밋 ID를 표시하지만 각 commit-ID에 대해 로컬로 해당 커밋이없는 경우 부모 커밋을 확인할 수 없습니다.
하지만 커밋을 확인할 필요는 없습니다. 을 사용 git fetch
하여 누락 된 개체를 가져 오면 전체 저장소 기록을 갖게됩니다. 미래 git fetch
는 계속해서 누락 된 개체 만 가져올 것입니다.이 개체는 항목을 찾는 데 필요한 새로운 개체입니다.
나는 당신이 무엇을 하려는지 git merge-base
모르지만 새로운 --fork-point
작업 을 제외한 모든 작업에 대한 커밋 ID 만 필요 합니다. 여기서 로컬 리플 로그를 사용하므로 로컬 참조 이름이 필요합니다. 예를 들면 :
$ git merge-base 9b1c2a3a8e625ea7f56e9ba3d3c0e31938faa738 \
> bba6acb335e296ed692b4aea224b50fd098f693c
ebc5da3208824e25a89672a3b91bd13629b215fe
이것은 9b1c2a...
및 의 병합 기반 bba6acb...
이 ebc5da3...
. (모두 git에 대한 소스를 포함하는 저장소 내의 커밋 ID입니다.) 그리고 :
$ git branch -a --contains ebc5da3208824e25a89672a3b91bd13629b215fe
* master
remotes/origin/maint
remotes/origin/master
remotes/origin/next
remotes/origin/pu
병합베이스는 네 개의 원격 지사에 포함되는 것을 우리에게 알려줍니다 : maint
, master
, next
,과 pu
, 플러스 로컬 지점 master
(동기화에 origin/master
어쨌든). 더 흥미롭게도 :
$ git describe ebc5da3208824e25a89672a3b91bd13629b215fe
v2.0.2
merge-base가 git 버전 2.0.2로 태그가 지정되어 있으므로이 두 개의 다른 커밋 (로그에서 임의로 선택)은 해당 특정 태그에서 공통 조상을 갖습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다