development

git에서 들어오는 커밋을 어떻게 볼 수 있습니까?

big-blog 2020. 6. 7. 00:48
반응형

git에서 들어오는 커밋을 어떻게 볼 수 있습니까? [복제]


가능한 중복 :
Git을 사용하여 로컬과 원격 사이에서 수정 된 파일을 어떻게 찾습니까?

git에서 들어오는 커밋을 어떻게 볼 수 있습니까? 아니면 더 나은, 내가 방금 git fetch/ git pull에드를 참조하십시오 ?

편집 : 질문을 명확히하기 위해 : 누군가가 나에게 수정을 받으려면 저장소에서 가져와야한다고 말합니다. 내 목표는 변경 사항을 수락 하기 전에 변경 사항을 확인하는 것입니다. git pull자동으로 병합되어 원하는 것이 아닙니다. git fetch병합하지 않고 그것들을 잡을 수 있지만, 내가 정확히 가져온 것을 보는 방법을 잘 모르겠습니다. 원래 문구의 이유는 일반적으로 명령이 될 곳인 Mercurial을 사용 hg incoming <repo name here>하기 때문입니다. .


incoming git에서 직접 매핑하는 것은 아닙니다. 따라서 여러 개의 repos를 가져올 수 있고 각 repo에는 여러 가지가 있기 때문에 (그리고 나는 종종 있습니다)

hg의 들어오는 명령과 동등한 것이 있다면 아마도 다음과 같습니다.

git fetch && git log ..origin/master

즉, "업스트림에서 모든 것을 가져 와서 현재 분기와 업스트림 마스터 분기를 비교하십시오."

마찬가지로 발신은 다음과 같습니다.

git fetch && git log origin/master..

실제로는 로컬 분기를 많이 추적하고 많은 원격 분기에서 추적하는 것이 쉽고 함께 유지하는 데 어려움이 없기 때문에 수동으로 입력합니다 (그중 하나의 별칭을 만들었더라도).


git whatchanged어떤 커밋 범위에서 이루어진 변경 사항에 대한 좋은 개요를 제공하는 데 관심이있을 수도 있습니다 .

당신은 당신이 풀에 대해하는지 검토 할 경우을 git fetch전용 (어떤이 아닌 원격 저장소에 로컬 추적 지점을 업데이트하는 첫 번째 사용자의 지점), 다음 모든 명령을 사용하는 쇼 당신에게 새로운 커밋 당신이 ' 당기려고 예를 들면 다음과 같습니다.

git whatchanged ..origin

이것은 "원산지"를 통해 "현재 어디에 있든 공통 조상과 기원"사이의 커밋을 보여주기위한 축약 형입니다.


두 저장소의 차이점을 조사 할 수 있습니다. 다른 사람들이 코드를 커밋하는 로컬 브랜치 'master'와 원격 추적 브랜치 'origin / master'가 있다고 가정하면 두 브랜치의 차이점에 대한 다른 통계를 얻을 수 있습니다.

git diff --summary master origin/master

git diff --stat master origin/master

git diff --numstat master origin/master

git diff --dirstat master origin/master

git diff --shortstat master origin/master

git diff --name-only master origin/master

git diff master origin/master

누군가가 당신에게 당겨달라고하면, 그들은 당신에게 repo URL과 가지를 줄 것입니다 (기본값은 master).

난 그냥 할거야

git fetch URL branch

그 뒤에 1 개 (우선 순위가 낮은 순서로) :

# note 3 dots in next 3 commands
gitk HEAD...FETCH_HEAD
    # shows all commits on both sides since the "fork" point
gitk --cherry-pick HEAD...FETCH_HEAD
    # as above but skips identical patches so you really see the differences
git log --graph --boundary --left-right --cherry-pick --decorate HEAD...FETCH_HEAD
    # I have a nice alias for this; it's the text mode eqvt of the above

또한 "를 사용 tig때때로"하지만,이 특정 쓰임새는 (보는 측면을) 잘 의해 제공되지 않는다 tig.

그러나 두 점으로 가져 가면 (실제 질문과 더 일치 할 수 있지만 여전히 3 점 버전을 선호하지만) 할 수 있습니다

tig HEAD..FETCH_HEAD

편의상 별명은 다음과 같습니다.

incoming = !sh -c 'git fetch && git log --graph --boundary --left-right --cherry-pick --decorate HEAD..FETCH_HEAD'
outgoing = !sh -c 'git fetch && git log --graph --boundary --left-right --cherry-pick --decorate FETCH_HEAD..HEAD'

"수신 커밋"사용자는 로컬 커밋을 수행하여 푸시하지 않습니다. gitx 또는 gitk (git와 함께 제공)를 열고 repos가 어떻게 보이는지 확인하십시오 ... 그것이 당신에게 명확한 시야를 줄 것이라고 생각합니다.

사용 : gitk --all참조하십시오.


이 게시물을 살펴보십시오. git 버전 1.7에서 도입 된 새로운 기능의 사용법을 보여줍니다. Git 사용 로컬 및 원격 사이의 변경 사항을 어떻게 찾을 수 있습니까?

참고URL : https://stackoverflow.com/questions/1331385/how-can-i-see-incoming-commits-in-git

반응형