어떻게 얻을 수 있습니 차 사이의 모든 투 사이에 발생한 두 날짜 Git?

StackOverflow https://stackoverflow.com/questions/1161609

  •  18-09-2019
  •  | 
  •  

문제

나 모든 투 사이에 발생한 두가요?에 SVN,당신이 할 수있는 뭔가

svn diff -r{date}:{date}

무료로 액세스 할 수 있습니다.나는 찾을 수 없는 것 자식에 해당하다.

특히 나를 보고하기 위한 스크립트를 작성하고 매일 보내는 이메일로 모든 코드는 최선을 다루는 누구에 의하여.

도움이 되었습니까?

해결책

당신은 사용할 수 있습니다 git whatchanged --since="1 day ago" -p

또한 a --until 논쟁.

문서

다른 팁

이전 제안에는 몇 가지 단점이 있습니다. 기본적으로, 나는 동등한 것을 찾고있었습니다 cvs diff -D"1 day ago" -D"2010-02-29 11:11". 점점 더 많은 정보를 수집하는 동안 솔루션을 찾았습니다.

내가 시도한 것들 :

  • git whatchanged --since="1 day ago" -p ~에서 여기

    그러나 이것은 하나의 파일에 여러 개의 커밋이 있더라도 각 커밋마다 차이를 제공합니다. 나는 그것을 알고있다 "날짜"는 git의 약간 느슨한 개념입니다., 나는 이것을 할 방법이 있어야한다고 생각했다.

  • git diff 'master@{1 day ago}..master 약간의 경고를합니다 warning: Log for 'master' only goes back to Tue, 16 Mar 2010 14:17:32 +0100. 모든 차이를 보여주지는 않습니다.

  • git format-patch --since=yesterday --stdout 나를 위해 아무것도주지 않습니다.

  • revs=$(git log --pretty="format:%H" --since="1 day ago");git diff $(echo "$revs"|tail -n1) $(echo "$revs"|head -n1) 어떻게 든 작동하지만 복잡해 보이고 현재 지점으로 제한되지 않습니다.

드디어:

재미있게도 Git -CVSServer는 "CVS Diff -D"를 지원하지 않습니다 (어딘가에 문서화되지 않으면).

"date"약간의 느슨한 개념에서 사용할 수 있습니다..커미가 있을 것이 저자 날짜할 수 있는 시간이 과거에 잘하기 전에 누군가가 실제로 끌어/commits commit 으로 자신의 저장소에도,커미할 수 있습베이스 및 업데이트로의 상단에 분명히 새로운다.

커밋한 commit 날짜를 업데이트되는 경우 커밋의 주소 또는 개정된 어떤 방법입니다.이러한 커밋가 될 가능성이에 일종의 연대순으로 하지만 당신은 여전히 자비의 커미터는 올바른 시간을 설정하에서 자신의 컴퓨터 그럼에도 불구하고,수정하지 않은 상태 commit 에 앉을 수 있는 기능을 지점에 원격 저장소의 무기한 전에 병합되는 마스터의 중앙 저장소에 있습니다.

아마도 가장 유용한 당신의 목적 reflog 날짜에서 특정장소에서 질문입니다.이 있는 경우 당점 reflogs 사용하십시오( git config core.logAllRefUpdates 음)사용할 수 있습니다 ref@{date} 구문을 참조하는 분이었습니다.

E.g.

git log -p master@{2009-07-01}..master@{now}

또한 사용할 수 있는'퍼지'설명:

git log -p "master@{1 month ago}..master@{yesterday}"

이러한 명령을 표시됩니다 모든 커밋 있는'등장에'주어진 지점의 저장소에 관계없이'이전'그들은 실제로 따르면 그 저자가 투입니다.

참고당 지점 reflog 은 특정을 저장소,그래서를 실행하는 경우에는 로그 명령에 복제,그리고 당신은 당기지 마십시오를 위해(예)한 달하기 위해 다른 모든 변경 사항에 대한 지난 달에 한 번,그의 마지막 달의 변화에 나타납니다 @{1 hour ago}..@{now} 범위에 있습니다.할 수 있는 경우 로그 실행하는 명령에'central'repostory 는 사람들이 밀어,다음 그것을 할 수 있습니다.

git diff --stat @{2013-11-01}..@{2013-11-30}

또는

git diff --stat @{2.weeks.ago}..@{last.week}

아마도

$ git format-patch --committer=<who> --since=yesterday --stdout

당신이 원하는 것 ( '-stdout'과 함께 또는없는 것)입니까?

일반적인 해결책은 사용하는 것입니다.

git rev-list -n1 --first-parent --until=<a date string> <a ref>

-사후 부모가 없으면 나중에 합병 된 지점에서 커밋을받을 수 있습니다. a ref 그러나 그대로 합병되지 않았습니다 a date string.

다음은 대안을 사용하는 것입니다 --children 그리고 grep 대신에 -n1:

mlm_git_ref_as_of() {
    # # Examples #
    #
    # Show all commits between two dates:
    #
    #     git log $(mlm_git_ref_as_of '2012-05-21 09:00:00-0400')..$(mlm_git_ref_as_of '2012-05-21 17:00:00-0400')
    #
    # Show diffs of all commits between two dates:
    #
    #     git diff $(mlm_git_ref_as_of '2012-05-21 09:00:00-0400')..$(mlm_git_ref_as_of '2012-05-21 17:00:00-0400')
    local as_of="$1"
    local ref="${2:-HEAD}"
    # Get the most recent commit (--children, grep -v ' ') that was on
    # the given branch ($ref, --first-parent) as of a given date
    # ($as_of)
    git rev-list --children --first-parent --until="$as_of" "$ref" | grep -v ' '
}

나는 익숙하지 않았다 git whatchanged 이 Q & A를 읽기 전에는 매우 다른 결과를 제공하므로 그것이 무엇을하고 있는지 잘 모르겠습니다.

특정 날짜가 단순히 첫 번째 커밋을 찾는 것입니다. X 그 날짜 또는 그 이후에 발생한 다음 사용합니다.

git diff X

이것은 신선한 클론의 리플 로그 항목에 의존하지 않는다는 이점이 있습니다.

git diff <reference>@{n}..
git log <reference>@{n}..

솔루션

더 나은 방법이 있기 때문에 이것은 재미있는 대답입니다. 이것은 오늘날의 모든 커밋 해시를 보여줄 것입니다.

git log --pretty="format:%H %ai" | grep `date +"%Y-%m-%d"` | awk {'print $1'}`

;·)

당신은 또한 사용할 수 있습니다 git- 형식 패치 패치 (diffs)를 준비하고 이메일을 통해 보내십시오.

커밋 범위를 지정하려면 옵션 [이후] 또는 [개정 범위]를 사용하십시오.

내가하는 방식으로 던질 것입니다.git log 날짜는 현재 지점에 대한 커밋 해시를 제공합니다. 그런 다음 나는 단지 같은 것을 사용합니다 git diff 8fgdfg8..565k4l5 파일로 집계 된 적절한 차이를 제공합니다. 그래도 테스트하지 않은 도움이되기를 바랍니다

파일이 지점에서 날짜로 변경되는 것을 보려면다음 공식을 사용하십시오:

  1. 지점을 확인하십시오.
  2. 원격 저장소에서 변경 및 업데이트
  3. Diff 파일을 날짜부터 날짜까지 시청하십시오

예시:

git checkout <branch>
git pull
git diff --stat @{fromDate}..@a{toDate}

날짜에주의를 기울이십시오 yyyy-mm-dd 체재:

git diff --stat @{2019-08-20}..@a{2019-08-21}

관찰하고 싶다면 특정 시간 범위에서 특정 파일의 변경 (코드에서 Diff를보십시오), 현재 파일을 탐색하기 만하면됩니다.

예시:

git diff @{2019-01-01}..@{2019-01-02} ~/dev/myApp/package.json
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top