Difference between revisions of "Git Commands"

From Exterior Memory
Jump to: navigation, search
(Create multiple pull requests (in GitHub))
(Move branch pointer to a different commit)
Line 59: Line 59:
 
However, if you want to move the master branch pointer, it may be useful to do the following:
 
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
 
  git branch -f branch-name commit-sha1
 +
 +
[[Category:Version_Control_Software]]

Revision as of 16:35, 8 March 2012

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 git@github.com:macfreek/some-project.git

Download a branch from a different remote site

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.

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