Formatting

Margen67 2021-05-08 00:04:40 -10:00
parent bdf8339685
commit 92117ee22e
1 changed files with 10 additions and 2 deletions

@ -3,12 +3,14 @@ There are lots of guides and documents on the internet, but there are too many a
# Git guide
### Remote Transfer or how to communicate with the world
* Get a fresh repository: git clone `<remote path>`
* Update current repository to latest: git fetch -v
* Update current repository to latest: git fetch -v
* Update current repository with commit from a fork: git fetch -v `<remote path>` `<branch>`
* Send your new commit to the remote: git push `<remote>` `<branch>`
### Commit or how to communicate with your local repository
* stage your change with dynamic selection: git add/rm -p `<file>`
* commit your change: git commit
* uncommit previous commit: git reset --soft HEAD~1
@ -16,12 +18,14 @@ There are lots of guides and documents on the internet, but there are too many a
* discard your change **forever** with dynamic selection: git checkout -p -- `<file>`
### Stash or how to save your precious work
Stash is very useful. For example, your will use it before/after (push/pop) merge/rebase action
* Push pending update on the stack: git stash
* Get back your update: git stash pop
* view content of your stash: git stash show -p `stash@\{0\}`
### Rebase or how to screw the history
**Never** rebase commits that were pushed remotely. Rebase can be used to improve your current patch set, or to fast-forward-merge after a fetch.
* The rebase command: git rebase -i
* Cancel it : git rebase --abort
@ -29,6 +33,7 @@ Stash is very useful. For example, your will use it before/after (push/pop) merg
* Continue rebase: git rebase --continue
### Branch or how to separate your work by feature
Please note that master is actually the default branch
* List branches: git branch -v
* Switch to another branch: git checkout `<branch>`
@ -37,12 +42,14 @@ Please note that master is actually the default branch
* Set the base reference of the branch (for rebase): git branch --set-upstream-to=`<remote>` `<branch_name>`
### House keeping
* Deletes all stale remote-tracking branches under `<remote>`: git remote prune `<remote>`
* List merged branch (safe to delete): git branch --merged
# Git use case example
### Branch management
Let's say you want to rebase your current branch topic-v1 to topic-v2 with new additions. Note: topic-v1 could also be master too.
* Go to current branch: git checkout topic-v1
* Create a new one: git branch topic-v2
@ -52,6 +59,7 @@ Let's say you want to rebase your current branch topic-v1 to topic-v2 with new a
* ...
### Split commit
* Copy your repository if you're not confident with this kind of operation: cp -a `<repository>` `<repository backup>`
* Do a rebase: git rebase -i
* Use edit on the commit that you want to split
@ -66,4 +74,4 @@ Repeat the 2 next commands for each new commits that you want to create
* Commit your change: git commit
Once you have finished to split your commit:
* Finish the rebase: git rebase --continue
* Finish the rebase: git rebase --continue