ChatGPT解决这个技术问题 Extra ChatGPT

Pull request without forking?

Here are steps of code contribution from the topic "How do I contribute to other's code in GitHub?"

Fork the project Make one or more well commented and clean commits to the repository. You can make a new branch here if you are modifying more than one part or feature. Perform a pull request in github's web interface.

Is it possible to make a pull request without forking a repo?

It's quite sad to see more than 20 repos in my account which were forked for some pull requests. They have no activity then and zero stars / followers. Looks like I'm just copying somebody's code for a black day.

Why would you want to?
Good question. It's also unclear to to get those 20 repos up-to-date with the original (or delete them).
You aren't actually copying any code. If sth happens to the original repo, your "fork" has zero backup value.

s
sorin

If you don't have access to create branches on that repository, there is no way to create a pull request without forking.


Can you please explain how you can create a pull request if you DO have access to branches on that repository?
GitHub has a good guide about that: help.github.com/articles/creating-a-pull-request
Just a reminder for something that may not be as clear to everyone. You need to create a fork for every repository you contribute to... but creating branches in your fork allows you to work one more than one PR at once for the upstream repo. You don't need 20 forks from the same repo to contribute with 20 PRs.
"...If you don't have access to create branches ..." how to check if I can create branch on repo or not ?
@RyanBigg How do you create the pull request if you DO have access to create branches??
S
Semnodime

Once your pull requests are accepted, you can safely delete the repo.

Afterwards, simply clone directly from the original upstream repo.

If you have other pull requests to make, then you should make them in their own respective branch, which means you can safely delete the branch you made to manage an accepted pull request (as in "My pull request has been merged, what to do next?")


FYI, github recently added a button to merged pull requests to make it easy (and intuitive) to delete the pull request branch: github.com/blog/1335-tidying-up-after-pull-requests
T
Todd A. Jacobs

By definition, a pull request involves a fork unless you have commit access to the destination repository. You can do a couple of things, though:

If you do have commit access, create a branch and make your pull request against the new branch. Post your patch in the body of an issue. This isn't really the GitHub way, but it certainly works. Fork a repository, create a pull request, and then delete the fork once the pull request is merged or declined.

If you're just trying to avoid keeping repositories around that you aren't actively using, I personally suggest option #3. It sticks to the accepted GitHub workflow without cluttering up your dashboard.


Probably best put here: 4. Maintain a second Github account just to deal with these pull-request-and-forget scenarios. It won't matter if that account has 20 inactive repos in it, as it's not the main account.
"If you do have commit access, create a branch and make your pull request against the new branch." Ok, great. HOW? My god it's like pulling teeth trying to get an answer to this question.
C
Community

github supports Shared Repository Model

The Shared Repository Model is more prevalent with small teams and organizations collaborating on private projects. Everyone is granted push access to a single shared repository and topic branches are used to isolate changes. Pull requests are especially useful in the Fork & Pull Model because they provide a way to notify project maintainers about changes in your fork. However, they're also useful in the Shared Repository Model where they're used to initiate code review and general discussion about a set of changes before being merged into a mainline branch.


Note how this does not explain how to create a pull request in this model.
A
Anona112

You still need that one-liner: hub fork;git push -u $GIT_USER HEAD;hub pull-request


A
AnonA

This is confusing. You can create pull request but you instead fork someone project then upload your own and in your fork make changes. Select options to compare branches. This is one of method. You should fork someone project and clone it using newest git gui (type url and name of folder, installation path will store your forks, default setting should be optimal for pasting). Alternatively use soulseek (which works like server), torrents or chomikuj (althrough you need use there dziellacz to split open source files to 1MB to merge).


m
meetjaydeep

As a workaround, you can create organization only for fork repos.