Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== git filter-branch ====== git filter-branch allows you to rewrite history of any size. For example, you could change the author's name and email for an entire project. However, this will change the SHA-1 so you can't do this if other people are tracking your project or branch. You can change various things conditionally, and if you don't change anything then the commit will go in exactly as it was before. ===== change date of one or more commits ===== * -d <dirname> represents where git will temporarily put the work as the new commits are created <code bash> #!/bin/bash git filter-branch --env-filter ' if [ $GIT_COMMIT = "97de3480e040f575bf9615162b197af426cab712" ]; then dt="2005.01.01 00:00:00" export GIT_AUTHOR_DATE=$dt export GIT_COMMITTER_DATE=$dt fi if [ $GIT_COMMIT = "827e1b8b64e37c7eebb1033ce66442ca9397e878" ]; then dt="2006.02.01 00:00:00" export GIT_AUTHOR_DATE=$dt export GIT_COMMITTER_DATE=$dt fi if [ $GIT_COMMIT = "856b9dcc2100bd0c0fe8309023086a32ab582bf5" ]; then dt="2007.03.01 00:00:00" export GIT_AUTHOR_DATE=$dt export GIT_COMMITTER_DATE=$dt fi if [ $GIT_COMMIT = "0cbae41340cbc803eca684e8ad6394af679faa53" ]; then dt="2008.04.01 00:00:00" export GIT_AUTHOR_DATE=$dt export GIT_COMMITTER_DATE=$dt fi ' -d tmp \ HEAD </code> ===== remove svn id strings ===== <code bash> git filter-branch --msg-filter ' sed -e "/^git-svn-id:/d" ' </code> ===== See Also ===== * [[creating_and_applying_patch_files]] docs/git/filter-branch.txt Last modified: 2010/04/14 22:53by billh