Difference between revisions of "Git Commands"

From Exterior Memory
Jump to: navigation, search
(Created page with "==Git commands== In particular useful with GitHub ====Create new branch==== git branch branchname ====Select a branch to work on it==== git checkout branchname ====Delet...")
 
(Create multiple pull requests (in GitHub))
Line 50: Line 50:
 
  git cherry-pick sha1_D sha1_E
 
  git cherry-pick sha1_D sha1_E
 
  git push origin topic2_req
 
  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

Revision as of 14:27, 1 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