Diff 같은 서로 다른 두 지점 간 파일 같은 컨트롤러상의 커밋한 어떻게 합니까?

깃 (git) 에서 같은 파일 비교, 내가 어떻게 서로 다른 두 지점 사이의 커밋한 (연속적이지) 같은 컨트롤러상의 (마스터 예를 들어)?

39 m , 기능 비교하십시오 i& 찾고 있는 것과 같은 Visual SourceSafe (VSS) 또는 팀 파운데이션 서버 (TFS). 깃 (git) 에서 가능할까요?

해결책

['깃 (git) 을 비교'] [1] 에서 마 페이지:

git diff [--options]   [--] [<path>...]

예를 들어, main.c&quot &quot 파일에 대한 차이를 볼 수 있습니다. 이제 2, 3 가지 사이에 뒤로를 커밋한 avamer 명령:

$ git diff HEAD^^ HEAD main.c
$ git diff HEAD^^..HEAD -- main.c
$ git diff HEAD~2 HEAD -- main.c

[1]: https://www.kernel.org/pub/software/scm/git/docs/git-diff.html, Kernel.org 버전니다 &quot 깃 (git) 을 비교 manpage&quot.

해설 (12)

개정, 다음과 같은 서로 다른 두 개의 서로 다른 두 개의 파일을 비교할 수도 있습니다.

깃 (git), diff &amp, lt, , gt, :&amp revision_1&amp &lt code&gt, lt, file_1& gt;; lt, , , lt, gt, :&amp &amp revision_2&amp file_2&amp, gt, &lt /code>;

해설 (3)

만약 구성한 &quot difftool"; 사용할 수 있습니다.

git difftool revision_1:file_1 revision_2:file_2

예: 마지막 파일 비교 변경분이 이전 상태로 커밋합니다 같은 컨트롤러상의 커밋합니다 지사급: 프로젝트의 경우 루트 폴더에 있는 것으로

$git difftool HEAD:src/main/java/com.xyz.test/MyApp.java HEAD^:src/main/java/com.xyz.test/MyApp.java

네 ~ /.gitconfig project/.git/config 파일 또는 다음 항목은 있어야 합니다. P4merge 장착합니다 [이건 내 기본 차이점 및 결합 도구에서는]

[merge]
    tool = p4merge
    keepBackup = false
[diff]
    tool = p4merge
    keepBackup = false
[difftool "p4merge"]
    path = C:/Program Files (x86)/Perforce/p4merge.exe
[mergetool]
    keepBackup = false
[difftool]
    keepBackup = false
[mergetool "p4merge"]
    path = C:/Program Files (x86)/Perforce/p4merge.exe
    cmd = p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
해설 (0)

깃 (git) ',' $ id 2 사 후 복제본에 확인란 로깅합니다 커밋한 실행하십시오 깃 (git) 및 다른 이들과 diff '명령' id, 예를 들면 다음과 같습니다.

$ git diff (sha-id-one) (sha-id-two)
해설 (3)

스케쳐내 파일의 변경 내용을 모두 볼 수 있는 기반을 둘 사이의 커밋한 의해 커밋합니다 커밋합니다 할 수도 있습니다.

깃 (git) - u $. $ end_commit start_commit path / to / 파일 로그 '-'

해설 (2)

이것은 펄 스크립트입니다 를출력합니다 diff 명령은 깃 (git) 로 지정된 파일에 대한 발견된 함장님이요 로깅할 깃 (git)

예:

git log pom.xml | perl gldiff.pl 3 pom.xml

익올때:

git diff 5cc287:pom.xml e8e420:pom.xml
git diff 3aa914:pom.xml 7476e1:pom.xml
git diff 422bfd:pom.xml f92ad8:pom.xml

그럼 줄일 것이라고 할 수 있는 윈도우 셸 ᄂ씨 붙여넣어집니다 세션 또는 그러는데 / bin / sh.

유라유라테이코쿠:

  1. 번호 (이 경우 3) 는 인쇄하려면 시용되는 선
  2. 파일 (포m.1믈 이 경우) 의 두 곳에서 합의가 선행돼야 한다고 (rec.601 기능을 제공할 수 있는 랩 (wrap it 쉘로 동일한 파일의 두 곳에서) 또는 셸 스크립트입니다 dir tpc. 휴지통에 넣어

코드:

# gldiff.pl
use strict;

my $max  = shift;
my $file = shift;

die "not a number" unless $max =~ m/\d+/;
die "not a file"   unless -f $file;

my $count;
my @lines;

while () {
    chomp;
    next unless s/^commit\s+(.*)//;
    my $commit = $1;
    push @lines, sprintf "%s:%s", substr($commit,0,6),$file;
    if (@lines == 2) {
        printf "git diff %s %s\n", @lines;
        @lines = ();
    }
    last if ++$count >= $max *2;
}
해설 (0)

여러 개의 파일을 비교해야 할 경우, 또는 디렉토리이며 비사양 횡단면도 커밋한 이 작업을 수행할 수 있었습니다.

분기로의 할 시간

git checkout -b revision

첫 번째 커밋합니다 되감지 대상

git reset --hard 

체리 피킹 사람들에 대해 관심을 갖고 있는 커밋합니다

git cherry-pick  ...

Diff 적용하십시오

git diff ^

완료되면

git branch -D revision
해설 (1)

여러개의 파일을 만들 수 있는 방법을 함께 스케쳐내 diff 지정된 @mipadi:

E. g. diff '와' 마스터 ',' 모든 '간' 헤드에게 너회의 스커피 파일을 찾을 수 있습니다.

git diff master..HEAD -- `find your_search_folder/ -name '*.coffee'`

이렇게 하면 '네' 검색 '모든' 스커피 저회가 diff 파일을 반복해서 your_search_folder/ 그들 사이에 그들의 '마스터' 버전.

해설 (0)

사용 방법은 다른 git& # 39 의 웨스오메네스.

git difftool HEAD HEAD@{N} /PATH/FILE.ext
해설 (1)

단순한 시각적 스케쳐내 Windows 에서 TFS 의 이 같은 비교, VSS 또는 시도하시겠습니까 얻을 수 있습니다.

  • 마우스 오른쪽 버튼으로 파일의 탐색기

    39, & # 39 - History& 깃 (git) 을 선택합니다.

  • 참고: 윈도우 10 이 git 업그레이드 후 나는 손실됩니다 컨텍스트로 메뉴 옵션. 그러나 # 39, & # 39 gitk& 사용하여 똑같은 얻을 수 있습니다. # 39, & # 39, 또는 지스크 filename& window.* 명령

39, & # 39 이 Git History& 전화하시기 한 번, Git, 왼쪽 위 창뿐만 파일의 역사를 가진 GUI 도구인 시작됩니다. 버전 중 하나를 선택할 것인지 비교. 그 중 두 번째 버전을 선택하고 마우스 오른쪽 단추로 클릭합니다.

Diff 이 - &gt. 선택한

또는

Diff 선택 - &gt. 이

왼쪽 아래 창뿐만 변경분 색으로 구분 표시됩니다.

해설 (1)