내가 git push
명령을 내렸을 때 무엇을 눌렀는지 알 수있는 방법이 있습니까?
제가 사진으로 찍는 것은 Github의 "풀 요청"기능의 "파일 변경"탭과 같은 것입니다. 풀 요청을 발행 할 때 풀 요청을 수락 할 경우 무엇이 풀릴지를 확인할 수 있습니다.
커맨드 라인은 괜찮지 만 위의 스크린 샷과 같은 GUI를 선호합니다.
내가 git push
명령을 내렸을 때 무엇을 눌렀는지 알 수있는 방법이 있습니까?
제가 사진으로 찍는 것은 Github의 "풀 요청"기능의 "파일 변경"탭과 같은 것입니다. 풀 요청을 발행 할 때 풀 요청을 수락 할 경우 무엇이 풀릴지를 확인할 수 있습니다.
커맨드 라인은 괜찮지 만 위의 스크린 샷과 같은 GUI를 선호합니다.
답변:
푸시 할 파일 목록을 보려면 다음을 실행하십시오.
git diff --stat --cached [remote/branch]
예:
git diff --stat --cached origin/master
파일의 코드 차이를 푸시하려면 다음을 실행하십시오.
git diff [remote repo/branch]
변경 될 파일의 전체 파일 경로를 보려면 다음을 실행하십시오.
git diff --numstat [remote repo/branch]
GUI에서 이러한 차이점을 보려면 git을 구성해야합니다. 시각적 diff 프로그램으로 'git diff'출력을 보려면 어떻게합니까?를 참조하십시오 . .
HEAD
인덱스가 아닌을 원점 ( git diff origin/master HEAD
) 과 비교해야합니다 . 커밋을 위해 준비된 변경 사항이없는 경우에만 인덱스를 비교하면 동일한 결과가 나타납니다. 단계적 변경 사항이 있으면 diff에 포함되지만 아직 커밋되지 않았으므로 명확하게 푸시되지 않습니다.
git diff --stat origin/master HEAD
해야 정답입니다.
git diff --cached [remote/branch]
트릭을 수행 :)
항상 드라 이런이 있습니다 :
git push --dry-run
실제로 데이터 전송을 제외한 모든 작업을 수행합니다.
보다 그래픽적인보기를 원한다면 많은 옵션이 있습니다.
git과 함께 제공되는 Tig 와 gitk 스크립트는 로컬 사본의 현재 브랜치와 리모트 또는 오리진의 브랜치를 표시합니다.
따라서 원점 이후에 수행하는 커밋은 푸시 될 커밋입니다.
을 입력하여 푸시하려는 브랜치에서 쉘에서 gitk를 연 gitk&
다음, 리모트에있는 것과 리모트에 푸시하려는 것의 차이점을 보려면 로컬 푸시되지 않은 커밋을 선택하고 리모트를 마우스 오른쪽 단추로 클릭하십시오. "Diff this-> selected"를 선택하십시오.
git diff --stat HEAD origin/master
또는을 수행하십시오 git diff HEAD origin/master
. 중요한 것은입니다 HEAD , 그렇지 않으면 당신은 당신의 사랑하는의 미트되지 않은 변경을 포함,
git push --dry-run
는 여전히 원격에서 쓰기 권한이 필요하다는 것입니다. 따라서 업스트림을 푸시 할 수있는 권한이없는 복제본이 있지만 로컬 푸시 --dry-run
되지 않은 변경 사항이 무엇인지 확인하고 싶다면 그렇게하지 마십시오.
branch
하고 origin/branch
, 나는 그것이 실제로 원격 REPO에 연결이 필요하지 않기 때문에, 누트 G. 스탠의 답을 갈 것입니다. 필요한 것에 따라 좋거나 나쁠 수 있습니다.
푸시 대기중인 커밋을 간단히 나열하려면 : ( 이것은 기억할 것입니다 )
git cherry -v
SHA1 옆에 커밋 제목을 표시하십시오.
git cherry -v heroku/remote
코드를 둘 이상의 리모콘에 보관하는 경우 와 같이 비교할 리모콘을 지정할 수 있다는 것입니다 .
아마도 실행하고 싶을 것입니다 git difftool origin/master...
. 원점 / 마스터 브랜치에없는 현재 브랜치에있는 통합 된 diff를 표시하고 선택한 그래픽 diff 도구에 표시해야합니다. 최신 상태를 유지하려면 git fetch
먼저 실행하십시오 .
git difftool -d origin/master
, difftool이 meld로 설정되어있어 잘 작동합니다!
git difftool -d
Aquarius Power 덕분입니다. 유일한 문제는 이동 된 파일을 감지하지 않고 삭제 및 추가 된 파일로 표시한다는 것입니다.
원격 저장소에서 로컬 버전을 푸시하기 전에 로컬 버전을 비교하는 한 가지 방법 (건조 실행의 푸시) :
TortoiseGit 사용 :
루트 폴더 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 TortoiseGit> 이전 버전과 비교>
버전 2를 선택하십시오.refs/remotes/origin/master
를 사용 git gui
하면 실제 커밋에서 변경된 사항의 목록을 볼 수 있습니다. 또한 참조를 gitk
위한 쉬운 인터페이스를 제공 할 수 있습니다 . 그냥 사이에 비교 remotes/...
하고 master
밀어 것입니다 무엇을 참조하십시오. 스크린 샷과 유사한 인터페이스를 제공합니다.
두 프로그램 모두 git에 포함되어 있습니다.
gitk --all
에서 모든 의견의 전체 목록을 볼 수 있습니다. 이제 개발자 브랜치의 실제 상태를 푸시하려는 리모컨과 비교할 수 있습니다.
파일이 변경되는 볼 과 받는 사람에 비해 실제 코드 변경보기 master
당신이 사용할 수있는 지점 :
git diff --stat --patch origin master
참고 : Intellij IDE를 사용하는 경우 최상위 프로젝트를 마우스 오른쪽 단추로 클릭하고 Git > 분기와 비교 >를 선택한 후 원하는 원점을 선택하십시오 origin/master
. 표시되는 파일 트리에서 파일을 두 번 클릭하여 시각적 차이를 볼 수 있습니다. 위의 명령 행 옵션과 달리 diff 창에서 로컬 버전을 편집 할 수 있습니다.
Mac OS X를 사용하는 경우 Tower를 얻는 것이 좋습니다 .Git을 즐겁게 해준 훌륭한 프로그램입니다. 이제 더 이상 터미널 명령을 기억해야하며 파일의 차이점을보고 추적하고 해결할 수있는 훌륭한 GUI를 제공합니다.
그리고 나는 그들과 제휴하지 않고 단지 그들의 소프트웨어를 사용하고 정말로 좋아합니다.
내 두 센트를 추가하기 만하면 ... gitlab 실행기의 gitlab 파이프 라인에서 작업을 실행할 때 이것을 구현하고 싶었습니다. 가장 좋은 방법은이 스크립트를 사용하는 것입니다.
git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA
또한 제 경우에는 확장명으로 파일을 필터링하고 싶었습니다.
git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA '*.py'
그런 다음 예를 들어이 목록을 다른 곳으로 전달할 수 있습니다.
이것이 누군가를 도울 수 있기를 바랍니다.