In particular useful with GitHub
Download and Upload Code
Download (fork) a remote repository
git clone remote-url git clone firstname.lastname@example.org:macfreek/some-project.git
Add a second remote site as a branch
git remote add branchname remote-url git remote add camblor https://github.com/macfreek/some-project.git
This will create branches under the macfreek/ prefix, e.g. macfreek/origin, macfreek/v1.4 etc. You need to
git pull --all to download the new branch.
Download (fork) a remote subversion repository
git svn clone --stdlayout url git svn clone http://tvgrabnlpy.googlecode.com/svn
Fetch updates from a remote repository
git pull git pull origin git pull --all
Upload committed changes to a remote repository
git push git push origin
Create new branch
git branch branchname
Select a branch to work on it
git checkout branchname
Delete a branch
git branch -D branchname
Delete a remote branch
By default branches are not deleted from a remote site, even not with a
git push --all.
git push remotename :branchname git push origin :branchname
Rename a branch
git branch -m oldname newname
Create multiple pull requests (in GitHub)
Imagine you have made four commits, and want to create two separate pull requests.
In this example branch
topic1 contains commits B and C, while branch
topic2 should only contain commits D and E.
A upstream/master -- B -- C topic1 -- D -- E topic2
Making a pull request for topic1 works as expected, but a pull request for topic2 will contain commits B, C, D and E. Not just D and E.
The solution is to create a new branch and to cherry-pick commits D and E:
git branch -b topic2_req upstream/master git cherry-pick sha1_D sha1_E git push origin topic2_req
Move branch pointer to a different commit
The normal action is to simply delete the old branch, and create a new branch at the desired commit:
git branch -D branch-name git checkout commit-sha1 git branch branch-name
However, if you want to move the master branch pointer, it may be useful to do the following:
git branch -f branch-name commit-sha1