56 lines
1.6 KiB
Markdown
56 lines
1.6 KiB
Markdown
---
|
|
Title: Some git tricks
|
|
Date: 2019-04-22 17:00
|
|
Modified: 2019-04-24 14:27+05:30
|
|
Author: Fabrice
|
|
Category: cheat sheets
|
|
Tags: git, termtosvg
|
|
Slug: git-tricks
|
|
Header_Cover: images/covers/water.jpg
|
|
Summary: A compilation of some `git` tricks I keep forgetting.
|
|
Lang: en
|
|
---
|
|
|
|
Some [git](https://git-scm.com/) tricks I use from time to time and that I forgot everytime…
|
|
|
|
**Disclaimer:** I'm not the perfect git user, and my way of using it is especially crude.
|
|
Recently, most of my git commits are due to [pass](/password-store.html), therefore most of those commands are here to fix my own mistakes.
|
|
|
|
Reset `master` to `origin/master`:
|
|
```sh
|
|
git checkout origin/master -B master
|
|
```
|
|
|
|
Jump back and forth from a commit to another (same behaviour as :
|
|
```sh
|
|
git checkout -
|
|
```
|
|
|
|
Find back lost commits, especially useful when you are doing dirty things and want to `cherry-pick` an orphan commit (for instance):
|
|
```sh
|
|
git log --graph --reflog
|
|
```
|
|
Some explanations: `--graph` show the commit tree, which is useful to notice the orphan leafs, and `--reflog` shows the world all the dirtiness you've done.
|
|
|
|
If you noticed that your folder grows, you can manually cast the garbage collector on it. It should do it automatically, but not often enough according to my standards.
|
|
```sh
|
|
git gc --aggressive
|
|
```
|
|
|
|
To add changes in an atomic fashion on a file (in an interactive way):
|
|
```sh
|
|
git add -p <file>
|
|
```
|
|
|
|
Another useful trick is `git commit -v`, it allows reviewing your changes before committing.
|
|
|
|
<object data="/examples/git-cv.svg" width="100%">Use of git commit -v</object>
|
|
|
|
A ncurse-based interface for git: [tig](https://jonas.github.io/tig/)
|
|
```sh
|
|
tig
|
|
```
|
|
|
|
<!-- vim: spl=en
|
|
-->
|