Note: some git commands require installing globally NPM module diff-so-fancy.
1
npm i -g diff-so-fancy
Merge another branch with default message
1 2 3
# we are in the current branch X # and want to merge the branch "main" git merge main --no-edit
See the diffs with the log
1
git log -p
Show the file from another branch
You can show the contents of a file from another branch / commit using git show:
1 2 3
git show <sha | branch>:path/to/the/file # for example, let's see the contents of the file from branch "b1" git show b1:cypress/e2e/spec.cy.js
Get the file from another branch
1 2 3
git checkout <branch name> <filename> # even from another commit git checkout <sha> <filename>
Checkout previous branch
Just like cd - goes to the previous working directory, git checkout - goes to the previously checkout branch.
Git CLI commands
I use git-extras to perform all my Git commands from the terminal.
Discard local changes
If you worked on files and then want to get back to the commit and discard (throw away) your changes
1
$ git reset --hard
Remove untracked files
Sometimes you get a bunch of generated files in the repo, and would like to remove them.
1 2 3 4 5 6
# first, see which files will be removed $ git clean -d -n # you can go through each file and confirm you want it deleted $ git clean -d -i # or if you are sure, delete them $ git clean -d -f
Tip: I defined a shell alias to remove all untracked files and revert local changes
1 2
# undo the Git changes and remove all untracked files alias gnuke="git reset --hard && git clean -df"
Merge another branch with default merge message
Typically, if you execute git merge <branch name> it merges that branch into the current branch. The merge creates a commit and Git asks you to edit the commit message. You can avoid editing and just accept the default message.
1
$ git merge <branch name> --no-edit
Copying a repository
To quickly download a snapshot of a remote repository and remove its .git folder (for example to start your own project), use the tool degit. You can even specify a tag to clone and subfolder