나는이 행동을 바로 가기 "자식 diffn"를 정의하고 싶습니다 :git diff 두 개의 순차 커밋 바로 가기?
git diffn := git diff HEAD HEAD~1
git diffn 1 := git diff HEAD~1 HEAD~2
git diffn 2 := git diff HEAD~2 HEAD~3
...
첫 번째는 문제가되지 않습니다,하지만 난 나머지를 만들기 위해 모르겠어요.
나는이 행동을 바로 가기 "자식 diffn"를 정의하고 싶습니다 :git diff 두 개의 순차 커밋 바로 가기?
git diffn := git diff HEAD HEAD~1
git diffn 1 := git diff HEAD~1 HEAD~2
git diffn 2 := git diff HEAD~2 HEAD~3
...
첫 번째는 문제가되지 않습니다,하지만 난 나머지를 만들기 위해 모르겠어요.
Figu 내 자신을 붉게해라. 내가 ~/.gitconfig이 괴물 추가 한이 후
[alias]
dn = "!sh -c 'if [ $# -eq 0 ] ; then git diff HEAD~1 HEAD ; else git diff HEAD~`expr $1 + 1` HEAD~$1 ; fi' -"
,
git dn
작품뿐만 아니라, (나) 놀랍게도
git dn 1
git dn 2
...
무엇에 대해 :
git show
- 마지막
git show HEAD~1
커밋을 보여줍니다 - 마지막을 표시하지만 하나
git show <COMMIT SHA>
커밋 - 당신에게 보여주고 어떤
git whatchanged
커밋 - 당신은 변경하는 파일을 보여줍니다 자식 로그에 대해
감사합니다. 전에는 사용하지 않았지만 유용합니다. 그러나 그것은 간단한 질문에 대한 나의 질문에 답하지 못합니다. –
아니요, 이것이 당신이 원하는 것입니다. 별칭을 만들려면 .bashrc에'alias gitdiffn = 'git show HEAD ~ $ 1''을 넣으십시오.하지만 git show HEAD ~ 2가 나에게 정보를 제공하는 동안이 명령을 별칭 – user1158559
으로 만드는 방법을 알았을 것입니다. $ DISPLAY를 사용할 수있을 때 merd를 호출하는 스크립트에 git diff를 바인드 했으므로 git diff HEAD ~ 2 HEAD ~ 1과 동등하지 않습니다. 그렇지 않으면 일반 diff가 필요합니다. –
을, 당신은 결합 할 수 있습니다 및 ^
구문이므로이 방법을 사용하고 있습니다.
a=1; git diff HEAD^~$a HEAD~$a
하지만 더 간단한 방법이이 :
a=1; git log -p -1 HEAD~$a;
[alias]
diffn = "!sh -c 'git log -p -1 HEAD~$1' -"
은 생략 인수 작동하지 않는다, 그래서 나는
if
이 그것을 위해 필요한 것 같아요.
BTW : 비슷한 발견 발견 here
BTW : 당신의'HEAD'는 바뀌어야합니다 :'git diff HEAD ~ 1 HEAD' 등등. 나는 같은 실수를 저질 렀기 때문에 눈치 챘습니다. :) – 13ren
고마워요, @ 13ren, 대답을 업데이트 할게요. . –