Normally you fork the target project to which you wish to make the pull request, commit it in your fork, and request the upstream maintainer to merge your exact commit. Then your exact commit (with the same byte for byte code changes and commit hash) gets added to the upstream repository, essentially wrapped in a "merge commit" by the maintainer. This preserves the integrity of the code change proposed by the original author.

Replies (5)

JackTheMimic's avatar
JackTheMimic 3 months ago
Right so, what if the original project maintainers and I (the one who forked the project) don't get along? How would I be able to merge code without their permission?
Whoever owns a given GitHub repository has the final say over what code changes are applied to it. This is the same reason I maintain my Satoshi fork of Bitcoin Core. It contains metric collection code changes that would never be accepted by the upstream project.
JackTheMimic's avatar
JackTheMimic 3 months ago
So doesn't that really make the argument that "Luke is the sole maintainer" more of a function of the fact that Knots is a fork of Core, than some sort of apathy? Given the contention between the two?
JackTheMimic's avatar
JackTheMimic 3 months ago
Okay, how exactly? Unless he literally copies the code to his project. Then there would be duplication issues correct? This is obviously more of a Github issue than a code commit, merge, or push issue but still.