mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
Merge #8178: Add git and github tips and tricks to developer notes
3144449
Add git and github tips and tricks to developer notes (Pieter Wuille)
This commit is contained in:
parent
b9a00f6294
commit
209a4d63bd
@ -383,3 +383,51 @@ GUI
|
|||||||
- *Rationale*: Model classes pass through events and data from the core, they
|
- *Rationale*: Model classes pass through events and data from the core, they
|
||||||
should not interact with the user. That's where View classes come in. The converse also
|
should not interact with the user. That's where View classes come in. The converse also
|
||||||
holds: try to not directly access core data structures from Views.
|
holds: try to not directly access core data structures from Views.
|
||||||
|
|
||||||
|
Git and github tips
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
- For resolving merge/rebase conflicts, it can be useful to enable diff3 style using
|
||||||
|
`git config merge.conflictstyle diff3`. Instead of
|
||||||
|
|
||||||
|
<<<
|
||||||
|
yours
|
||||||
|
===
|
||||||
|
theirs
|
||||||
|
>>>
|
||||||
|
|
||||||
|
you will see
|
||||||
|
|
||||||
|
<<<
|
||||||
|
yours
|
||||||
|
|||
|
||||||
|
original
|
||||||
|
===
|
||||||
|
theirs
|
||||||
|
>>>
|
||||||
|
|
||||||
|
This may make it much clearer what caused the conflict. In this style, you can often just look
|
||||||
|
at what changed between *original* and *theirs*, and mechanically apply that to *yours* (or the other way around).
|
||||||
|
|
||||||
|
- When reviewing patches which change indentation in C++ files, use `git diff -w` and `git show -w`. This makes
|
||||||
|
the diff algorithm ignore whitespace changes. This feature is also available on github.com, by adding `?w=1`
|
||||||
|
at the end of any URL which shows a diff.
|
||||||
|
|
||||||
|
- When reviewing patches that change symbol names in many places, use `git diff --word-diff`. This will instead
|
||||||
|
of showing the patch as deleted/added *lines*, show deleted/added *words*.
|
||||||
|
|
||||||
|
- When reviewing patches that move code around, try using
|
||||||
|
`git diff --patience commit~:old/file.cpp commit:new/file/name.cpp`, and ignoring everything except the
|
||||||
|
moved body of code which should show up as neither `+` or `-` lines. In case it was not a pure move, this may
|
||||||
|
even work when combined with the `-w` or `--word-diff` options described above.
|
||||||
|
|
||||||
|
- When looking at other's pull requests, it may make sense to add the following section to your `.git/config`
|
||||||
|
file:
|
||||||
|
|
||||||
|
[remote "upstream-pull"]
|
||||||
|
fetch = +refs/pull/*:refs/remotes/upstream-pull/*
|
||||||
|
url = git@github.com:bitcoin/bitcoin.git
|
||||||
|
|
||||||
|
This will add an `upstream-pull` remote to your git repository, which can be fetched using `git fetch --all`
|
||||||
|
or `git fetch upstream-pull`. Afterwards, you can use `upstream-pull/NUMBER/head` in arguments to `git show`,
|
||||||
|
`git checkout` and anywhere a commit id would be acceptable to see the changes from pull request NUMBER.
|
||||||
|
Loading…
Reference in New Issue
Block a user