2014-07-13 4 views

답변

2

나는 GIT_COMMITTER_DATE하고의 GIT_AUTHOR_DATE 당신이 (마지막 단지)

#!/bin/bash 
# commit 
# date YYYY-mm-dd HH:MM:SS 

commit="$1" datecal="$2" 
temp_branch="temp-rebasing-branch" 
current_branch="$(git rev-parse --abbrev-ref HEAD)" 

date_timestamp=$(date -d "$datecal" +%s) 
date_r=$(date -R -d "$datecal") 
echo "datecal=$datecal => date_timestamp=$date_timestamp date_r=$date_r" 

if [[ -z "$commit" ]]; then 
    exit 0 
fi 

git checkout -b "$temp_branch" "$commit" 
GIT_COMMITTER_DATE="$date_timestamp" GIT_AUTHOR_DATE="$date_timestamp" git commit --amend --no-edit --date "$date_r" 
git checkout "$current_branch" 
git rebase --autostash --committer-date-is-author-date "$commit" --onto "$temp_branch" 
git branch -d "$temp_branch" 

무엇 그 날을 허용하는 마지막 커밋 가지고 있습니다 원하는 커밋 변경 git-rcd라는 내 경로에 해당 스크립트를 가지고 방금 입력하고 입력 :

git rcd @ '1 day ago' 

그리고 presto! 내 마지막 커밋은 어제 완료되었습니다.

그것은 변경

은 당신이 원하는 커밋 :

git rcd @~2 '1 day ago' 

에만 HEAD~2 (아닌 HEAD~ 또는 HEAD)

스크립트도 Windows에서 작동 바꿀 것 그.

일단 변경이 완료되면 이전 날짜 (이전에 잘못된 날짜로 푸시 한 경우 git push --force)를 누릅니다. 그리고 당신의 조흔이 보존됩니다.

+0

이 스크립트를 내 경로에 추가하고 활용하려면 어떻게해야합니까? 이 문서/추가 정보가 있습니까? –

+1

@ chopperdrawlion4는'git-rcd' (확장자 없음)라는 파일을 만들고'PATH' (환경 변수'PATH'에 의해 나열된 폴더 중 하나에 있음)의 아무 곳에 나 넣습니다. 그러면'rcd' 명령은'git'에 의해 알려질 것입니다 :'git rcd'가 작동 할 것입니다. 나는이 때 – VonC

+0

나는 오류가 발생 : '1 일 전' sudo는 자식 RCD의 @의 치명적인 : '자식-RCD'간부 인 수 없습니다 권한은 더는 sudo가 필요하지 chopperdrawlion4 @ –

1

어제, 나는 프로젝트 파일의 변경 사항을했지만, GitHub의 기여 그래프가 날짜 시간을 밀지, 날짜 시간을 커밋 의존하고 커밋하고 내가 아는 한

GitHub의

에 밀어 잊어 버렸습니다. FWIW, 도용 게시판으로 기여도 그래프를 사용하는 것을 학대하는 도구조차도 있습니다 (이 참조).

그래서 쉬운 방법은 최근이 같은으로 저자 날짜 (시간을 선택하고 시간대는 당신이 좋아하는 것)을 변경 커밋 다시 그런 다음 로컬 이제

  • 커밋

    • 하는 것 git commit --amend --date="Wed Jul 12 14:17 2014 +0900"

    • 푸시

  • +0

    'git add newFile.php'와'git commit -m "newFile Update"와'git commit --amend --date = "Str Jul 12 14:17 2014 +0900"그리고 오늘의 기고문으로 파일을 갱신합니다 ... – user3464303

    +0

    @ user3464303 굉장! – nulltoken

    관련 문제