원격 커밋 저장소 (origin)에 특정 커밋이 포함되어 있는지 여부를 결정하고 싶습니다. 사용 사례는 다음과 같습니다.Git 저장소가 특정 커밋을 포함하는지 확인
공개 석방을 준비 중입니다. 릴리스를 빌드 할 원시 코드베이스를 나타내는 커밋의 SHA-1을 포함하고 싶습니다.
또한 커밋이 로컬 커밋이 아니라 중앙 저장소 (원본)로 푸시되었음을 보장하고자합니다.
나는
git pull --all & git branch --contains commit-hash
을 생각하고는, 현재 브랜치의 추적 브랜치를 포함 작동하지만, 오히려 성가신 보인다 있는지 확인하기 위해 출력을 검사. 나는 git remote --contains origin commit-hash
또는 git cat-file origin commit-hash
과 같은 좀 더 간결한 것을 찾고 있습니다. 힘내 기가 밀거나 당기는 동안 어떤 물체가 옮길 필요가 있는지를 결정할 때 힘내 기 (git)가 사용하는 위생 명령이 있어야한다고 생각합니다. - 나는 내부 구조에 익숙하지 않습니다.
도움 주셔서 감사합니다. git fetch && git branch -r --contains <commit-id>
hmmm ... 나는 -r 옵션을 간과했다. 이것은 효과가있을 것이지만 나는 아직도 내가 빠뜨린 배관 명령이 있어야한다고 생각한다. 그리고 실제로, 현재 브랜치의 추적 브랜치에 커밋이 포함되어 있는지 여부는 신경 쓰지 않습니다. 나는 그 커밋이 어떤 브랜치에 접근 할 수 있는지에 관계없이 커밋이 원천에 존재한다는 것에 신경을 썼다. – Josh
@ Josh : 분명히 공개 릴리스 인 경우 해당 분기가 무엇인지 신경 써야합니다. 특정 분기에 대해서는 분기에 있어야합니다. – Cascabel
스크립트의 경우와 같이 위생 설비를 사용하는 것이 좋습니다.'git merge-base --is-ancestor' –
JaviMerino