Difference between revisions of "Git"
Pdherbemont (talk | contribs) (For SVN user cogito tutorial) |
Pdherbemont (talk | contribs) (Document some a bit more advanced commands.) |
||
Line 1: | Line 1: | ||
+ | = Basic Git usage = | ||
== Getting VLC source code via Git == | == Getting VLC source code via Git == | ||
git clone git://git.videolan.org/vlc.git | git clone git://git.videolan.org/vlc.git | ||
Line 34: | Line 35: | ||
voilà! Your commit will be re-applied on top of the origin (the svn trunk). | voilà! Your commit will be re-applied on top of the origin (the svn trunk). | ||
+ | == Submitting patches to the vlc-devel == | ||
+ | If you have been developing on vlc locally and (still) don't have write access, you can submit all your commit in one shot using: | ||
+ | $ git format-patch -o out origin | ||
+ | which will produce the patches for each local commit in the directory "out". | ||
+ | You can also use the [http://www.kernel.org/pub/software/scm/git/docs/git-imap-send.html git-imap-send] command: | ||
+ | $ git format-patch --stdout --attach -n origin | git-imap-send | ||
+ | which will directly produces the emails and store them in a imap mail box, provided that you have properly set up [http://www.kernel.org/pub/software/scm/git/docs/git-imap-send.html git-imap-send]. | ||
+ | = Advanced usage = | ||
== Creating a secondary local branch == | == Creating a secondary local branch == | ||
If you want to work on a specific project that could require a branch of the trunk, create a local branch of the current branch by doing: | If you want to work on a specific project that could require a branch of the trunk, create a local branch of the current branch by doing: | ||
Line 43: | Line 52: | ||
Then do some commit on it... And you can go back to your original master branch by doing: | Then do some commit on it... And you can go back to your original master branch by doing: | ||
$ git checkout master | $ git checkout master | ||
+ | |||
+ | == Revert your non-committed local changes == | ||
+ | $ git checkout -f | ||
+ | |||
+ | ==Undo commit == | ||
+ | This will undo the last commit | ||
+ | $ git reset HEAD^ | ||
+ | which is the same as | ||
+ | $ git reset master^ | ||
+ | (if you are checked-out copy of your tree is master) | ||
+ | And also the same as | ||
+ | $ git reset a44a594 | ||
+ | if you have: | ||
+ | $ git log | ||
+ | commit ff7004b70fd239e4120deb160e2991bd5237b8df | ||
+ | Author: fkuehne <fkuehne> | ||
+ | Date: Thu Apr 12 18:44:47 2007 +0000 | ||
+ | |||
+ | * added sanity flags for future darwin releases and potentionally fixed OSX | ||
+ | |||
+ | commit a44a594898f981a145cfcace5f16f8973f9eb46f | ||
+ | Author: jb <jb> | ||
+ | Date: Thu Apr 12 16:24:49 2007 +0000 | ||
+ | |||
+ | Qt4 - MouseWheel support - patch by Sergey Volk. | ||
+ | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Documentation about git == | == Documentation about git == |
Revision as of 21:53, 12 April 2007
Contents
Basic Git usage
Getting VLC source code via Git
git clone git://git.videolan.org/vlc.git
You can also browse the sources via gitweb.
Configure your local git repository
Tell git your name. (used by mostly by git-commit)
$ git repo-config user.name "Your Name" $ git repo-config user.email "me@example.com"
List the local branch
You can now list your local branch by doing
$ git branch
which should ouput
$ git branch * master
Commit
Now you can start to work on your tree. As soon as you feel you've reached a step in developement you can commit locally your work by
$ git commit -a
or
$ git commit <specific files>
List your commits
$ git log
Keeping your local working branch in sync
$ git fetch origin $ git rebase origin
voilà! Your commit will be re-applied on top of the origin (the svn trunk).
Submitting patches to the vlc-devel
If you have been developing on vlc locally and (still) don't have write access, you can submit all your commit in one shot using:
$ git format-patch -o out origin
which will produce the patches for each local commit in the directory "out". You can also use the git-imap-send command:
$ git format-patch --stdout --attach -n origin | git-imap-send
which will directly produces the emails and store them in a imap mail box, provided that you have properly set up git-imap-send.
Advanced usage
Creating a secondary local branch
If you want to work on a specific project that could require a branch of the trunk, create a local branch of the current branch by doing:
$ git branch mywork
and to actually use it do:
$ git checkout mywork
Then do some commit on it... And you can go back to your original master branch by doing:
$ git checkout master
Revert your non-committed local changes
$ git checkout -f
Undo commit
This will undo the last commit
$ git reset HEAD^
which is the same as
$ git reset master^
(if you are checked-out copy of your tree is master) And also the same as
$ git reset a44a594
if you have:
$ git log commit ff7004b70fd239e4120deb160e2991bd5237b8df Author: fkuehne <fkuehne> Date: Thu Apr 12 18:44:47 2007 +0000
* added sanity flags for future darwin releases and potentionally fixed OSX
commit a44a594898f981a145cfcace5f16f8973f9eb46f Author: jb <jb> Date: Thu Apr 12 16:24:49 2007 +0000
Qt4 - MouseWheel support - patch by Sergey Volk.