Git Commands

From Exterior Memory
Revision as of 14:27, 1 March 2012 by MacFreek (Talk | contribs) (Create multiple pull requests (in GitHub))

Jump to: navigation, search

Git commands

In particular useful with GitHub

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

Fetch updates from a remote repository

git pull
git pull origin
git pull --all

Download (fork) a remote repository

git clone remote-url
git clone

Download a branch from a different remote site

git remote add branchname remote-url
git remote add camblor

This will create branches under the macfreek/ prefix, e.g. macfreek/origin, macfreek/v1.4 etc.

Upload committed changes to a remote repository

git push
git push origin

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