Difference between revisions of "Draft: Github development process"

From Dreamwidth Notes
Redirect page
Jump to: navigation, search
(attempt at filling out git workflow)
(Redirected page to Version Control)
 
(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
This page is a draft page to document how development with Github works.
+
#redirect [[Version Control]]
 
+
== Starting a new branch ==
+
 
+
Before starting a new branch, wrap up any changes you are making by either stashing them or committing them to the current branch you are on.  {{Expand|text=Need to explain stashing/committing still.}}
+
 
+
To start a new branch, use the branch command.  You will want a descriptive name you can keep track of--for instance, the bug number you are working on. Examples:
+
 
+
mw@memewidth:~/dw$ git branch Bug4335/admintt
+
 
+
Then, to switch to this branch, use the checkout command:
+
 
+
mw@memewidth:~/dw$ git checkout Bug4335/admintt
+
Switched to branch 'Bug4335/admintt'
+
 
+
== Managing changes ==
+
 
+
Before doing any changes to a branch, make sure you have that branch checked out.  You can check this with:
+
 
+
git branch
+
 
+
It will list the branches and put an asterisk next to the one you currently have checked out.  If it's not, run:
+
 
+
git checkout BRANCHNAME
+
 
+
=== Viewing changes ===
+
 
+
Overview:
+
 
+
git status
+
 
+
Detail:
+
 
+
git diff
+
 
+
=== Stashing and unstashing ===
+
 
+
Save a bunch of changes:
+
 
+
git stash
+
 
+
Put the changes back:
+
 
+
git stash pop
+
 
+
=== Undoing changes ===
+
 
+
Undo changes to one file:
+
 
+
git reset ????FILLIN????
+
 
+
The nuclear option:
+
 
+
git reset --hard
+
 
+
=== Committing changes ===
+
 
+
When committing, it's a good idea to make sure your develop branch is up to date with the Dreamwidth's version, and that your current branch is merged with those changes.  See [Dev Maintenance] for instructions on that.  Once you are satisfied
+
 
+
git commit ?????
+
 
+
{{Expand|text=Writing commit messages: best practices.}}
+
 
+
=== Pushing your changes to your repository on Github ===
+
 
+
git push origin BRANCHNAME
+
 
+
== Making a pull request ==
+
 
+
Before making a pull request, make sure that the <code>develop</code> branch is up to date and you have merged the branch you are developing with it. (See [[Dev Maintenance]] for help with this.)
+
 
+
Then, once everything is all up to date, go to your version of the repository (dw-free or dw-nonfree) that you want to send upstream.  By default they should be at:
+
 
+
https://github.com/USERNAME/dw-free
+
https://github.com/USERNAME/dw-nonfree
+
 
+
These repositories are separate, so if you have made changes to both of them, you will have to submit pull requests for both of them.
+
 
+
Find the "Pull Request" button (by "Unwatch") under the top toolbar.  Click it and you will be brought to the pull request page.
+
 
+
Ideally, the initial page should say something like "Oops! dreamwidth:develop is already up-to-date with USERNAME:develop Try a different branch?"  That's good--that means that your <code>develop</code> branch is up to date with Dreamwidth's!
+
 
+
Find the "head branch" drop down and select the branch you want to submit a pull request for.
+
 
+
{{Expand|text=What do we want people to include in the pull request description?  Bugzilla URL?}}
+
 
+
When this is done, press the "Send pull request" button.
+
 
+
{{Expand|text=Describe making a pull request to another repository other than the DW one!}}
+
 
+
== Deleting branches ==
+
 
+
{{Warn|text=This command WILL destroy data, be careful when using it.  Only delete things you are sure you want deleted.}}
+
 
+
You might create a branch by mistake, or have your changes pulled into the main develop branch on Dreamwidth.  Once that happens, you can delete the branch:
+
 
+
git branch -D BRANCHNAME
+

Latest revision as of 04:30, 10 January 2013