2012-12-11 2 views
3

내가 자주 후 빠른 git push -f origin master왜 수정하지 않을 경우 git이 수정 경고를하지 않습니까?

문제 다음 git commit --amend를 실행, 바로 커밋 후 파일을 변경 만드는 실수를, 분명히, 내가 git add foo.md를 실행하지 않을 것입니다. 그래서 제 수정안은 제 커밋 된 코드를 실제로 수정하지 않았습니다.

질문 : 변경 사항이없는 커밋을 수정할 때 왜 git이 경고하지 않습니까? 더 나은 아직, 왜 성공적으로 완료합니까? 주어진 커밋의 타임 스탬프를 변경하는 것처럼 "촉각"처럼 행동하는 것일까 요? 내가 --amend이 마지막 힘내 커밋 노 - 편집 커밋 경우, 예를 들어
다음 저자에게 일 (%ai)을 투입하더라도

답변

3

커밋 한 날짜 (%ci가)되고 리셋을 유지는 동일하게 유지 REPO, 저자 날짜는 변경되지 않습니다,하지만 난 그냥 새로운 커밋 만든 : 같은 내용으로 이전을 대체하지만 다른는 최신 커밋 :

P:\git\git>git show -s --format="%ci" e0d6576639261beefb40afa52696d02f16c490ed 
2012-12-11 03:42:23 +0100 <== just now 

P:\git\git>git show -s --format="%ai" e0d6576639261beefb40afa52696d02f16c490ed 
2012-12-07 14:18:55 -0800 <== original date when the author did commit 

그래서 어떤 수정이 가 발생합니다 디 fferent SHA1. Pro-Book에서

:

  • 저자는 원래 커미터 반면, 작업,
  • 을 쓴 사람은 지난 일을 적용하는 사람입니다.

commit --amend 항상 새가 커미터 날짜가 변경되는 경우에만 있기 때문에, 커밋 다시 것입니다.

1

수정은 커밋 메시지 또는 커밋의 다른 세부 사항을 변경하는 데 유용합니다. 따라서 작업 디렉토리를 변경하지 않고 실행하면 많은 의미가 있습니다. 향후 이러한 문제가 발생하지 않도록하려면 다음을 사용하는 것이 좋습니다.

git commit -a --amend 
관련 문제