Create Git aliases, And Git Commands You May Not Know

One of my favorite feature in Git is aliases. Git supports aliases, which implies you can provide your commands any name you need. I like to set aliases for long commands to avoid searching for them every time I need it.
The syntax for Git alias:
git config --global alias.[new_alias] "[git_command(s)]"Let's create some useful Git aliases:
git recommit
git config --global alias.recommit 'commit --amend -m'git commit --amend allows you to change the last commit message. Now this recommit command is less difficult and a lot simpler to remember.
# Change the last commit message with recommit
git recommit "New commit message"git commend
git config --global alias.commend 'commit --amend --no-edit'Commit amend with --no-edit flag permits you to commit the new changes in the repository with the last commit made, so you don't need to repeat the commit message again.
git search
git config --global alias.search 'grep'
# Example
git search [search_term]git grep permits you to search in the repository for a keyword and it gives different matches. It is cool, yet I don't have a clue what grep means. Linux/Unix user may know what grep means but I think windows user might don't know about it. So, I prefer "search" instead because it is easy to remember and easy to use.
git here
git config --global alias.here '!git init && git add . && git commit -m "initial commit"'Usually, when I initialize a new repository, I'll stage all the files and commit them with an initial commit message. git here does it all in one step.
git who
git config --global alias.who 'blame'
# Example
git who index.tsgit blame is utilized to look at the contents of a file line by line and see when each line was last modified and who made that modification. If there was a bug, in a line, you discover who did it and blame them.
git zip
git config --global alias.zip 'archive --format=tar.gz -o ../repo.tar.gz'
# Example
git zip [branch_name]The archive commands allow you to make tarballs or zips of your entire repository. git zip will make it simple to remember.
git newbie
git config --global alias.newbie 'checkout --orphan'
# Example
git newbie [new_branch_name]git checkout with the --orphan flag permits you to make a branch with no any history from the parent branch.
git clonely
git config --global alias.clonely 'clone --single-branch --branch'
# Example
git clonely [branch_name] [remote_url]
git clonely v3 [email protected]:vuejs/vue-apollo.gitgit clone with --single-branch --branch flags allows you to clone a specific branch from a repository.
git plg
git config --global alias.plg "log --graph --pretty=format:'%C(yellow)%h%Creset -%Cred%d%Creset %s %Cgreen| %cr %C(bold blue)| %an%Creset' --abbrev-commit --date=relative"
# Example
git plg # plg - Pretty LogThere isn't anything wrong with git log aside from that it is somewhat ugly, no color differences. Using this alias command, you'll get a very pretty log of everything.
git fresh
git config --global alias.fresh "filter-branch --prune-empty --subdirectory-filter"
# Example
git fresh [subfolder] [branch_name]
git fresh src main # Don't do this unless you know what you are doingThe series of commands that fresh replace is utilized to make another repository out of the contents of a subfolder. filter-branch with it many flags take the contents of a specified subfolder and replace the content in the whole repository with the content of the subfolder.
.gitconfig file
Now after creating all these aliases .gitconfig file will look like this:
[alias]
    recommit = commit --amend -m
    commend = commit --amend --no-edit
    here = !git init && git add . && git commit -m \"Initialized a new repository\"
    search = grep
    who = blame
    zip = archive --format=tar.gz -o ../repo.tar.gz
    lonely = clone --single-branch --branch
    plg = log --graph --pretty=format:'%C(yellow)%h%Creset -%Cred%d%Creset %s %Cgreen| %cr %C(bold blue)| %an%Creset' --abbrev-commit --date=relative
    fresh = filter-branch --prune-empty --subdirectory-filter 
     
  
  
  
  
  
  
  
  
  
 
Please login or create new account to add your comment.