나는하는 경향이 amend
와 rebase
나는 작은 커밋 일반적으로 그룹을하기 때문에 많은 (읽기 : squash
)을 결국 역사 (좋은처럼) 일관성을 가지고.
즉, 주어진 브랜치의 모든 커밋에 대해 작성자 와 커미터 로부터 동일한 정보를 얻고 싶습니다. 그래서 Git으로 "기본적으로"이 작업을 수행하는 방법이 있는지 궁금합니다.
기본적으로 내가 찾고있는 것은 :
master
). 예 :git rev-list master..HEAD
git log --format=%aD --no-walk
변경 사항을 적용합니다.그런 식으로 커미터의 정보는 작성자의 정보와 동일합니다. 날짜를 제외하고는 제 경우에는 아무것도 변경되지 않기 때문입니다.
나는 이것을 대화식으로 할 수 있다는 것을 알고 있지만, 그런 일을 할 수있는 Git-fu 명령이 있는지 궁금합니다.
Filter-branch는 libexec/git-core/git-sh-setup
실행하는 필터에 표준 유틸리티 함수 (부터 )를 제공하므로
git filter-branch \
--setup 'eval `get_author_ident_from_commit thatcommit`
targetname=$GIT_AUTHOR_NAME
targetemail=$GIT_AUTHOR_EMAIL
' \
--env-filter '
GIT_AUTHOR_NAME=$targetname
GIT_AUTHOR_EMAIL=$targetemail
GIT_COMMITTER_NAME=$targetname
GIT_COMMITTER_EMAIL=$targetemail
' \
--tag-name-filter cat \
-- master..
벨트와 멜빵으로이 작업을 수행하려면 스크래치 복제에서 수행하십시오.
git clone -ns --mirror . `mktemp -d`; cd $_
# the above filter-branch
# if everything looks good,
git push origin HEAD
cd -
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다