Activity Team/Git FAQ: Difference between revisions

Use proper name, except in code or URIs
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
<noinclude>{{TeamHeader|Activity Team}}</noinclude>
<noinclude>{{TeamHeader|Activity Team}}</noinclude>
: '''[[Talk:Activity Team/Git FAQ | Post new questions here]]'''.
: '''[[Talk:Activity Team/Git FAQ | Post new questions here]]'''.
==Using github (github.com)==
==Using GitHub (github.com)==
=== Help! I suddenly can't connect to GitHub! ===
=== Help! I suddenly can't connect to GitHub! ===
:The [http://osuosl.org/ OSUOSL], which hosts Gitorious, has an aggressive IP blacklist policy.  If you once were able to push but now cannot, send an email to support@osuosl.org requesting that your IP be removed from the blacklist.
:Please contact to [https://github.com/contact GitHub support], or look at [https://help.github.com/ GitHub FAQ]
 
To check if the problem is with your key, try:
 
ssh -v git@github.com
 
A successful ssh setup results in a normal response "Hi! You've successfully authenticated, but GitHub does not provide shell access."


=== How do I create an account on github.com? ===
=== How do I create an account on github.com? ===
Line 17: Line 11:
===How do I migrate a project to GitHub? ===
===How do I migrate a project to GitHub? ===


:Please follow the [[Activity Team/How_to_migrate_from_SugarLabs|instructions here]] to first set up your project's entry in GitHub.
:Please follow the [[Activity Team/How_to_migrate_from_Gitorious|instructions here]] to first set up your project's entry in GitHub.


=== How do I create a new project? ===
=== How do I create a new project? ===


:First set up the project in github as per above.
:First set up the project in GitHub as per above.


:Go to your project directory and type:
:Go to your project directory and type:
Line 41: Line 35:
=== How do I add an additional committer to my project? ===
=== How do I add an additional committer to my project? ===


:Go to: <nowiki>https://github.com/ignaciouy/PROJECTNAME/settings/collaboration</nowiki> . Type a username in the box and click "add collaborator"
:Go to: <nowiki>https://github.com/USERNAME/PROJECTNAME/settings/collaboration</nowiki> . Type a username in the box and click "add collaborator"


=== How do I create a fork of an existing project? ===
=== How do I create a fork of an existing project? ===
Line 64: Line 58:
  [remote "origin"]
  [remote "origin"]
     url = git@github.com:username/yourproject.git
     url = git@github.com:username/yourproject.git


=== How do I request a merge? ===
=== How do I request a merge? ===


:Go to your GitHub fork page and follow the steps of the images
:Go to your GitHub fork page and follow the steps of the images
<gallery>
 
Merge-Step1.png|Click on the Pull Request button
[[File:Merge-Step1.png]] <br />
Merge-Step2.png|You will get something like that.
Click on the Pull Request button
Merge-Step3.png|If you used another branch for changes, just change it in the image
[[File:Merge-Step2.png]]<br />
Merge-Step4.png|Click on Create Pull request
You will get something like that
Merge-Step5.png|Edit the title/description of the pull request, and click on Create pull request. Now the commiter will review it
[[File:Merge-Step3.png]]<br />
</gallery>
If you used another branch for changes, just change it in the image
[[File:Merge-Step4.png]]<br />
Click on Create Pull request
[[File:Merge-Step5.png]]<br />
Edit the title/description of the pull request, and click on Create pull request. Now the commiter will review it]]


===What is the difference between a branch and a repository?===
===What is the difference between a branch and a repository?===


When you make a clone of a project on gitorious, it creates a "repository". You can see the list of repositories associated with a project by clicking on the Repository Tab. Branches are clones within a repository (created with git branch and accessed through git checkout). Git merge commands refer to branches, not repositories, so in order to merge a repository back into mainline, you need to pull (fetch followed by merge) it as if it were a patch.
When you make a clone of a project on GitHub, it creates a "repository". You can see the list of repositories associated with a project by clicking on the Repository Tab. Branches are clones within a repository (created with git branch and accessed through git checkout). Git merge commands refer to branches, not repositories, so in order to merge a repository back into mainline, you need to pull (fetch followed by merge) it as if it were a patch.


  git merge [your repository name]  # This won't work
  git merge [your repository name]  # This won't work
Line 95: Line 94:
  git rebase master
  git rebase master


===How do I push my branch to gitorious?===
===How do I push my branch to GitHub?===


Use <code>git push origin <your branch name></code>, e.g.,
Use <code>git push origin <your branch name></code>, e.g.,
Line 158: Line 157:




You can also generate a [[#How do I request a merge?|merge request]] on Gitorious from your forked repository to mainline.
You can also generate a [[#How do I request a merge?|merge request]] on GitHub from your forked repository to mainline.


=== How do I send a patch to the Sugar developers? ===
=== How do I send a patch to the Sugar developers? ===
Line 195: Line 194:
=== How do I amend a commit message? ===
=== How do I amend a commit message? ===


If you have "dirty" history (i.e. other patches that are not in mainline
If you have "dirty" history (i.e., other patches that are not in mainline
yet) please create a branch carrying only those two patches and push
yet) please create a branch carrying only those two patches and push
that branch:
that branch:
Line 237: Line 236:
==Internationalization work flow==
==Internationalization work flow==


The i18n work flow involves an interplay between the Pootle server, where translations are maintained and gitorious, where the master POT files are updated. '''Note''': As a maintainer, you may update the .pot file associated with your project, but never update .po files. These are updated for you in the i18n work flow.
{{Note/note|This section is for Gitorious only|The following does not apply to GitHub.}}
 
The i18n work flow involves an interplay between the Pootle server, where translations are maintained and Gitorious, where the master POT files are updated. '''Note''': As a maintainer, you may update the .pot file associated with your project, but never update .po files. These are updated for you in the i18n work flow.


=== How do I get translations for my project? ===
=== How do I get translations for my project? ===
Line 272: Line 273:
  git push -fv
  git push -fv


=== How do I update the Tag field in Gitorious? ===
=== How do I update the Tag field in GitHub? ===


  git tag -m "Release 36" v36 HEAD
  git tag -m "Release 36" v36 HEAD