
#VISUALSVN HOW TO CHANGE COMMIT AUTHOR FULL#
SVN tracks commits using a username, whereas Git has a full name and email address. Preferably, you should only do this in repositories that haven't been published / shared, yet. First, let’s look at the author information. The same warning applies to this method as to the others mentioned: you are rewriting history with this command, creating new commit objects along the way! You can run the below sample script in your repository (filling in real values for the old and new email and name): $ git filter-branch -env-filter Name It allows you to batch-process a (potentially large) number of commits with a script.

$ git rebase -continue Using git filter-branchĪnother way is to use Git's "filter-branch" command. Your job, now, is to correct the author information and then continue to the next concerned commit object until you've edited all the commits you just marked: $ git commit -amend -author="John Doe " -no-edit Once you are satisfied with your changes, run Git will now walk you through each commit, giving you the chance to mold it as you desire: Stopped at 5772b4bf2. In your repository, create a file hooks/pre-revprop-change or simply copy file hooks/pre-revprop-change.tmpl. Adding the pre-revprop-change hook to allow SVN properties edition. This is the case of the message and date: edition of these values just require a simple hook. Your editor will open, requesting you to mark all the commits you want to change with the "edit" keyword. Most of the information stored in a SVN commit can be edited. The first step is to identify the last "good" commit and provide its hash to the rebase command: $ git rebase -i -p 0ad14fa5 Use it with care (and possibly read up on it)! However, being as powerful as it is, this also means you can very easily shoot yourself in the foot. Interactive Rebase is the Swiss Army Knife of tools in Git: it allows you to do and change almost anything. This effectively replaces the last commit with your "edited" version, correcting the wrong author information. In case you want to change just the very last commit, Git offers a very easy way to do this: git commit -amend -author="John Doe " There are three basic ways to edit your past commits: Using -amend for the Very Last Commit Therefore, think twice before you rewrite your commit history! This is nothing to take lightly: you will create new commit objects in this process, which can become a serious problem for your collaborators - because they might have already based new work on some of the original commits. No matter how exactly we change the information of past commits, there's one thing to always keep in mind: if we do this, we are effectively rewriting commit history.

Note Editing Past Commits Rewrites History!
