aboutsummaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
authorMacroFake <falke.marco@gmail.com>2022-05-18 10:27:49 +0200
committerMacroFake <falke.marco@gmail.com>2022-05-24 08:17:41 +0200
commitfa2d226ac950d8b4f7e430732f13ad408c504745 (patch)
tree459b5c27ede79d271900bb8b6cc57dc4e08e0697 /CONTRIBUTING.md
parent44037a29129a830fd9c9580f0818387756cfd7d3 (diff)
downloadbitcoin-fa2d226ac950d8b4f7e430732f13ad408c504745.tar.xz
doc: Explain squashing with merge commits
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md10
1 files changed, 6 insertions, 4 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index aec6995d3b..0ae4ff1a92 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -216,9 +216,9 @@ Please update the resulting commit message, if needed. It should read as a
coherent message. In most cases, this means not just listing the interim
commits.
-If you have problems with squashing or other git workflows, you can enable
-"Allow edits from maintainers" in the right-hand sidebar of the GitHub web
-interface and ask for help in the pull request.
+If your change contains a merge commit, the above workflow may not work and you
+will need to remove the merge commit first. See the next section for details on
+how to rebase.
Please refrain from creating several pull requests for the same change.
Use the pull request that is already open (or was created earlier) to amend
@@ -231,7 +231,9 @@ pull request to pull request.
### Rebasing Changes
When a pull request conflicts with the target branch, you may be asked to rebase it on top of the current target branch.
-The `git rebase` command will take care of rebuilding your commits on top of the new base.
+
+ git fetch https://github.com/bitcoin/bitcoin # Fetch the latest upstream commit
+ git rebase FETCH_HEAD # Rebuild commits on top of the new base
This project aims to have a clean git history, where code changes are only made in non-merge commits. This simplifies
auditability because merge commits can be assumed to not contain arbitrary code changes. Merge commits should be signed,