Jump to content

GIT Cheat Sheet

From tmplab
Revision as of 19:03, 14 December 2010 by Phil (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Basic commands (local)

Creating

git init

Adding files

git add <filename>

or to commit all files in current directory:

git add .

Committing changes

git commit -m <message>

or

git commit -m <message> FILE1 FILE2 FILE3 ... DIR1 DIR2 ...

or to commit all that needs:

git commit -m <message> -a

Seeing changes

git log

Tagging

Adding a tag

git tag <tagname> -m "Comment about this tag"

Listing tags with comments

git tag -n

Seeing files inside repository

git ls-files
git ls-tree HEAD

Branching

git branch
git branch <NEW_BRANCH_NAME>
git checkout <NEW_BRANCH_NAME>
git commit -a
git checkout master
git merge <NEW_BRANCH_NAME>

Diff between two branches

git diff master..<NEW_BRANCH_NAME>

Remote commands

Creating an empty project on a remote machine (DH)

For first import into a GIT server for example:

ssh username@yourcheaphost.com
mkdir -p ~/git/yourproject.git
cd ~/git/yourproject.git
git --bare init

And then on the local machine:

mkdir yourproject
cd yourproject
git init
git remote add origin ssh://username@yourcheaphost.com/~/git/yourproject.git
touch .gitignore
git add .
git commit -m "Initial Commit" 
git push origin master

and add this to your .git/config in your project.

[branch "master"]
  remote = origin
  merge = refs/heads/master

Push your developer commits to server

git push origin master

Get a copy of a project

git clone gitservername:proj1 proj1

Update my local copy with the server's copy

git pull

Get server's copy from a new machine

git clone ssh://[<user@>]yourcheaphost.com/git/yourproject.git

Troubleshooting

git “fatal: no matching remote head”

Cause: cannot fetch/clone remote empty GIT repo

mkdir autobuildrequires
cd autobuildrequires
git init
touch README
git add README
git commit -a -m "First commit."

Link: http://rwmj.wordpress.com/2009/03/06/git-fatal-no-matching-remote-head/

References