diff options
| author | Christian Cleberg <[email protected]> | 2024-04-27 17:01:13 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2024-04-27 17:01:13 -0500 |
| commit | 63a5afda03daefb45e061a055685335207f21b60 (patch) | |
| tree | d5193997d72a52f7a6d6338ea5da8a6c80b4eddc /content/blog/2021-05-30-changing-git-authors.org | |
| parent | eac7b5d0841f62d4cf1dc81f0fed3f207316bca0 (diff) | |
| download | cleberg.net-63a5afda03daefb45e061a055685335207f21b60.tar.gz cleberg.net-63a5afda03daefb45e061a055685335207f21b60.tar.bz2 cleberg.net-63a5afda03daefb45e061a055685335207f21b60.zip | |
test conversion back to markdown
Diffstat (limited to 'content/blog/2021-05-30-changing-git-authors.org')
| -rw-r--r-- | content/blog/2021-05-30-changing-git-authors.org | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/content/blog/2021-05-30-changing-git-authors.org b/content/blog/2021-05-30-changing-git-authors.org deleted file mode 100644 index b06660d..0000000 --- a/content/blog/2021-05-30-changing-git-authors.org +++ /dev/null @@ -1,72 +0,0 @@ -#+title: Changing Git Authors -#+date: 2021-05-30 -#+description: A guide to change Git author names and emails in old commits. -#+filetags: :dev: - -* Changing Git Author/Email Based on Previously Committed Email -Here's the dilemma: You've been committing changes to your git -repository with an incorrect name or email (or multiple repositories), -and now you want to fix it. Luckily, there's a semi-reliable way to fix -that. While I have never experienced issues with this method, some -people have warned that it can mess with historical hashes and integrity -of commits, so use this method only if you're okay accepting that risk. - -Okay, let's create the bash script: - -#+begin_src sh -nano change_git_authors.sh -#+end_src - -The following information can be pasted directly into your bash script. -The only changes you need to make are to the following variables: - -- =OLD_EMAIL= -- =CORRECT_NAME= -- =CORRECT_EMAIL= - -#+begin_src sh -#!/bin/sh - -# List all sub-directories in the current directory -for dir in */ -do - # Remove the trailing "/" - dir=${dir%*/} - # Enter sub-directory - cd $dir - - git filter-branch --env-filter ' - - OLD_EMAIL="[email protected]" - CORRECT_NAME="your-new-name" - CORRECT_EMAIL="[email protected]" - - if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] - then - export GIT_COMMITTER_NAME="$CORRECT_NAME" - export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" - fi - if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] - then - export GIT_AUTHOR_NAME="$CORRECT_NAME" - export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" - fi - ' --tag-name-filter cat -- --branches --tags - - git push --force --tags origin 'refs/heads/*' - - cd .. -done -#+end_src - -Finally, save the bash script and make it executable. - -#+begin_src sh -chmod a+x change_git_authors.sh -#+end_src - -Now you can run the script and should see the process begin. - -#+begin_src sh -./change_git_authors.sh -#+end_src |
