Difference between revisions of "Git"

From VideoLAN Wiki
Jump to navigation Jump to search
Line 78: Line 78:
== Documentation about git ==
= Documentation about git =
* [http://git.or.cz/ Official Git Website]
* [http://git.or.cz/ Official Git Website]
* [http://www.kernel.org/pub/software/scm/git/docs/tutorial.html Git Tutorial]
* [http://www.kernel.org/pub/software/scm/git/docs/tutorial.html Git Tutorial]
* [http://git.or.cz/course/svn.html Switching from SVN to git using cogito]
* [http://git.or.cz/course/svn.html Switching from SVN to git using cogito]

Revision as of 22:34, 12 April 2007

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


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


$ 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 # note that there is no need to use the full sha id

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