Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Contributing using git

So I have cloned a project at github and fixed a patch. Since this is the first time Im working in git Im trying to figure out the best way to put it online.

Upon checking out my own (cloned) repository on github there was only one branch: master. I created a branch, myfix, which now holds one commit, which is the fix for the bug.

  • Should I now push everything to my cloned project on github? I assume that this would create the branch myfix on my github project containing that single fix commit.
  • Should I merge myfix into the master branch, remove myfix and then push everything?

When searching online, it seems that the common/good practice is to leave master untouched, using that purely for pulling from the real/original public project repository (that is, others accepted contributions and such). But others suggest other strategies:

  • Create an upstream branch, put your clean and ready contributions there so others can find them easy, not mixing it up with my other incomplete/experimental branches (I wonder why these would even be online if they were so incomplete).
  • Create a downstream branch, pull others changes in here for offline merging.

If I follow the above two (currently feels a bit overkill though) what purpose would the master branch fill?

Git can do any combination (or all) of the above. This leaves me a bit confused as to how to easy show my work to others. Is there such a "common" workflow? Or is it every man for himself and you post a specific revision in a specific branch (thats pushed) in the issue tracker for the fixed bug?

like image 350
Mizipzor Avatar asked Dec 08 '09 22:12

Mizipzor


People also ask

What is contributor in Git?

GitHub defines a Contributor as: "This user has previously committed to the <repo name> repository." I think that generally means a merged pull request (In other words, a contributor is more than someone who "wants to contribute," but someone who has contributed already).

How do Git contributions work?

Whenever you commit to a project's default branch or the gh-pages branch, open an issue, or propose a Pull Request, we'll count that as a contribution. Repositories are sorted by your recent impact. A commit today is worth more than a commit last week.

How do I contribute to someone on GitHub?

Making a pull request To do so, head on over to the repository on GitHub where your project lives. For this example, it would be at https://www.github.com/<your_username>/Spoon-Knife . You'll see a banner indicating that your branch is one commit ahead of octocat:main . Click Contribute and then Open a pull request.


1 Answers

When you clone a repository, Git automatically creates remote tracking branches that do what you describe for the master branch. You can list these remote tracking branches with:

git branch -r

Because tracking the upstream repository is already done for you, you would normally use your master branch for mainline changes to the project. Here's what I would do in your particular situation:

  • Merge the myfix branch into master in your clone. (Having done this in a "topic branch" is good practice.)
  • Push the master branch to Github. (It's unclear whether you forked the original repository, or just cloned from it. You will need to fork the original repository, creating your own copy, for the next step to work.)
  • Send a Github pull request to the owner of the repository you forked.
like image 91
Greg Hewgill Avatar answered Oct 05 '22 01:10

Greg Hewgill