You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.5 KiB
76 lines
2.5 KiB
============================================================ DOCUMENTATION =======================================================
|
|
|
|
GIT tutorial on kernel.org:
|
|
http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html
|
|
|
|
GIT "cheat sheet"
|
|
http://jonas.nitro.dk/git/quick-reference.html
|
|
|
|
GIT for those who are used to centralized SCMs:
|
|
http://media.pragprog.com/titles/tsgit/chap-005-extract.html
|
|
|
|
================================================================ HOWTO ===========================================================
|
|
|
|
To get a copy of the repo:
|
|
git clone http://your-username@scm.trinitydesktop.org/scm/git/<repository name>
|
|
|
|
To exclude items:
|
|
Create a file '.gitignore'
|
|
|
|
To add to the git repository (easiest and most efficient way):
|
|
git add .
|
|
(this will add everything in the folder (excluding stuff from .gitignore). It is intentionally a period because * will make git ignore already committed files.)
|
|
|
|
To commit to the git repository (this does not send to the remote server!):
|
|
git commit -a
|
|
(no need to do any git mv or git rm or any of that with the -a option.)
|
|
|
|
To pull recent commits from the remote git repository:
|
|
git pull
|
|
(do this before pushing so that you don't collide with other's commits.)
|
|
|
|
To push to the remote git repository:
|
|
git push origin master
|
|
(the 'origin master' part is optional after the first time.)
|
|
|
|
To branch (be careful! This is different from SVN.):
|
|
git branch <name>
|
|
(don't know what branch you're on? run "git branch" to see and list.)
|
|
|
|
To switch branches:
|
|
git checkout <branch name>
|
|
|
|
To tag a commit (like for releasing a tarball):
|
|
git tag -a <version> -m <message>
|
|
(ps: this will make webgit generate a tarball with this tag.
|
|
easy releases anyone?)
|
|
|
|
To tag a commit WITH GPG verification (secure release anyone?):
|
|
git tag -s <version> -m <message>
|
|
|
|
|
|
|
|
================================================================= NOTE ============================================================
|
|
GIT cannot store empty directories due to a intentional design limitation.
|
|
|
|
Therefore, this command should be run prior to any commits to ensure your empty directories stick around:
|
|
|
|
find . -type d -empty -exec touch {}/.gitignore \;
|
|
|
|
This will add a .gitignore to every empty directory.
|
|
|
|
================================================================ WORKFLOW ==========================================================
|
|
|
|
|
|
git clone http://your-username@scm.trinitydesktop.org/scm/git/<repository>
|
|
|
|
<make your changes, test, etc>
|
|
|
|
cd <repository checkout directory>
|
|
find . -type d -empty -exec touch {}/.gitignore \;
|
|
git add .
|
|
git commit -a
|
|
git pull
|
|
git push
|
|
|