(Up-to-date source of this post.)
Although I'm more of a sysadmin than a developer I often write scripts (in Perl or Bash). And I tend to use Git for tracking my programs. Every Git repository contains complete history of revisions and is not dependent on a central server or network access. I don't work within a big group of developers, so I try to keep things simple.First time setup
The following steps are usually needed to be done only once on a machine and are global for all Git repositories:
git config --global user.name "Jeffrey Lebowski" git config --global user.email "jeffrey.lebowski@dude.com" git config --global color.ui true git config alias.lol 'log --pretty=oneline --abbrev-commit --graph --decorate' git config --global core.editor vim git config --global merge.tool vimdiff
The I can check the configuration like this:
git config --list
or
cat ~/.gitconfig
Starting a new Git repository
One way to start working with Git is to initialize a directory as a new Git repository:
mkdir project cd project git init
Notice a new
.git
directory. Then I take the snapshot of the contents of all files within current working directory (.
):git add . # temporary storage - index
This command adds the files to a temporary staging area called index. To permanently store the index:
git commit # permanent storage
I enter a commit message and I'm done.
Cloning a Git repository
I often need to get an already existing repository (some code me or someone else has already written and stored for example on GitHub):
## Any server with ssh and git git clone ssh://[user@]server.xy/path/to/repo.git/ ## GitHub git clone git://github.com/ingydotnet/....git
Working with Git
When dealing with Git, it's best to work in small bits. Rule of thumb: if you can't summarize it in a sentence, you've gone too long without committing.
My typical working cycle is:
1. Work on my project.
2. Check whether something has changed:
git status
3. Check what has changed:
git diff
4. Add and commit changes (combines two steps in one
git add
+ git commit
):git commit -am "commit message"
If I not only changed files but also added some new ones I have to add them explicitly:
git add newfile1 newfile2 newfolder3
and then commit as in step 4.
Excluding some files
To set certain files or patterns to be ignored by Git, I create a file called
.gitignore
in my project’s root directory:# Don't track dot-files .* !/.gitignore
.gitignore
is usually checked into Git and distributed along with everything else.
No comments:
Post a Comment