| トップ | 読書感想文 | Ukki |
gitメモ

branch

You are always in a branch in git.  The branch created with git init command is called 'master'.

You can have multiple branches.  To show all the branches, use git branch.  You can switch to a different branch by git checkout command.

To create a new branch, use git branch branchname.

git checkout -b branchname is a shortcut to create a new branch and switch to it.

git branch -d branchname will delete a specified branch.

What is HEAD?
HEAD is the special symbol to refer the current branch.  A Branch is referred by a head, which is the tip of a branch.
% git branch
  experimental
* master                 <--- There are two branches and currently master branch is selected.
% cat .git/HEAD
ref: refs/heads/master   <--- HEAD is referring the head of master branch.
% git checkout experimental
Switched to branch "experimental"
% cat .git/HEAD
ref: refs/heads/experimental   <--- HEAD is now referring the head of experimental branch.

To see which branch you're using, use git branch.

branch and file modification
When you modify a file in a branch and haven't commited, you cannot switch to a different branch.

Also, file you created will be carried to a branch you switched.



Revert

git revert is used for a different meaning than other version control systems such as svn.

Revert to the last committed state
git reset --hard HEAD
--hard changes the working tree and index.

Revert a single file to the repository version
git checkout -- lib/casserver/localization.rb
git checkout HEAD -- db/development.sqlite3


git setup for Rails project

Create .gitignore file with following content:
log/*.log
tmp/**/*
doc/api
doc/app
If you already committed some of these files, remove them using git rm.
git rm -f log/development.log

Initialize a repository

% cd target
% git init
This commands create a git repository at target/.git.

.git/config - configuration file for the repository.
.git/description - a file used by gitweb utility.

The git index is used as a staging area between a working directory and a git repository.

Files in "Changed but not updated" is not in the index.

Show the list of remote git repositories

% git remote show
origin
upstream
It shows the list of the remote repository names.

To see more details, use -v
% git remote -v show
origin  git@github.com:gaku/rubycas-server.git
upstream        git://github.com/gunark/rubycas-server.git


Pull a specific version of a file with git

git checkout commit path
git checkout ceb17f9984bd59d2fe30aa9f8834d700b1f59de2 db/development.sqlite3
I got the commit name with git log command.


Is .gitignore not working?

Even though I have the following line in .gitignore file, changes are showing up in git status.

.gitignore doesn't have effect to already tracked files.  Remove it from repository (git rm ...) or use git update-index --assume-unchanged.
(2009/06/25)

Top
Index
Search on Ukki

login

Sections:
branch
Revert
git setup for Rails project
Initialize a repository
Show the list of remote git repositories
Pull a specific version of a file with git
Is .gitignore not working?