|
|
(64 intermediate revisions by 8 users not shown) |
Line 1: |
Line 1: |
− | Developing on pioneer means using the version control tool 'git' and the [https://github.com/ github] website. git especially has a reputation for having a steep learning curve, so here we'll try to give you enough knowledge to be dangerous!
| + | Page moved to: |
| + | https://dev.pioneerspacesim.net/contribute/git-and-github |
| | | |
− | == Prerequisites ==
| + | Any edits should be made there, i.e. can use github editor and edit inplace |
− | | + | https://github.com/pioneerspacesim/pioneer-developer-docs/blob/master/contribute/git-and-github.md |
− | A working installation of git, and a GitHub account.
| |
− | | |
− | The GitHub sign-up page is [https://github.com/signup/free here]. Make a note of your user name as you'll need it to make your local pioneer repository.
| |
− | | |
− | If you're on Linux you quite quite likely have git installed already. If you can type <code>git --version</code> at the command line and get a version number back you're good to go. If you don't have it the package repository for your distribution almost certainly will. Use your distribution's package management tools to download and install it.
| |
− | | |
− | If you're the type of Linux user who builds everything from source, rolling your own kernels, I'm going to assume you're already quite familiar with git, and this was not the page you were looking for :)
| |
− | | |
− | On Windows you have two options, [http://msysgit.github.com/ Git for Windows] aka msysgit, or [http://windows.github.com/ Github for Windows] which is essentially msysgit but with some extra stuff bundled. Some of which is good ([https://github.com/dahlbyk/posh-git posh git]) and some of which is well, not (github's 'friendly' gui). Since both include the same command line tools and cross platform gui tools, either is fine for our purposes here. The github one may be more convenient to install.
| |
− | | |
− | == Creating your pioneer repositories ==
| |
− | | |
− | git clone git://github.com/<your gituhub username>/pioneer.git
| |
− | | |
− | git remote add upstream git://github.com/pioneerspacesim/pioneer.git
| |
− | | |
− | == Basic operations ==
| |
− | | |
− | git branch
| |
− | | |
− | git status
| |
− | | |
− | git checkout <branch-name>
| |
− | | |
− | git branch <branch-name> ; git checkout <branch-name>
| |
− | git checkout -b <branch-name>
| |
− | | |
− | gitk
| |
− | | |
− | git add -A ; git commit
| |
− | git commit -a
| |
− | | |
− | git push origin <branch name>
| |
− | | |
− | == Updating your branches ==
| |
− | | |
− | git fetch upstream
| |
− | | |
− | git merge
| |
− | | |
− | git pull --ff-only upstream master
| |
− | | |
− | git merge master
| |
− | | |
− | == Resolving Conflicts ==
| |
− | | |
− | == Making a pull request ==
| |
− | | |
− | == Getting code from other branches ==
| |
− |
| |
− | git checkout <branch-name> -- <file-name>
| |
− | | |
− | git merge <branch-name>
| |
− | | |
− | == Getting other developer's branches ==
| |
− | | |
− | git remote
| |
− | | |
− | git remote add <remote> <url>
| |
− | | |
− | git remote update
| |
− | | |
− | git checkout -b <branch-name> --track <remote>/<remote-branch-name
| |
− | | |
− | == Keeping things tidy ==
| |
− | | |
− | git branch -d <branch-name>
| |
− | | |
− | git branch -D <branch-name>
| |
− | | |
− | git push origin :<branch-name>
| |
− | | |
− | git clean -n
| |
− | | |
− | git clean -f
| |
− | | |
− | == Reviewing a pull request ==
| |
− | | |
− | == Rebasing and cherry picking ==
| |
− | | |
− | '''Warning''': Rebasing and cherry picking, although sometimes useful, can cause problems for other developers if you use them on commits that have already been published to github. Be careful and give sufficient warnings if you find you needing to use them in that situation.
| |
− | | |
− | git cherry-pick <commit>
| |
− | | |
− | gitk
| |
− | | |
− | git rebase <branch-name>
| |
− | | |
− | git rebase -i <branch-name>
| |