cvs, svn, bzr, hgと、ほぼ一緒です。
リポジトリ作成
リポジトリの追加は、initコマンドです。
/etcのように既存のファイルも簡単に管理できます。
$ mkdir gitrepo $ cd gitrepo $ git init Initialized empty Git repository in ~/gitrepo/.git/ $
ファイルの追加
ファイルの追加は、addコマンドで追加できます。
$ touch file1.txt $ git add file1.txt $ git commit -m "add" [master (root-commit) ccbd3d4] add Committer: Gecos <user@domain> Your name and email address were configured automatically based on your username and hostname. Please check that they are accurate. You can suppress this message by setting them explicitly: git config --global user.name "Your Name" git config --global user.email you@example.com If the identity used for this commit is wrong, you can fix it with: git commit --amend --author='Your Name <you@example.com>' 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 file1.txt $
ユーザとメールの設定
gitを操作するとガイダンスが出てきますが、コミットログに記録される名前とメールアドレスを設定できます。(このスタイルは、bazaarと一緒で設定ファイルより好きです。)
$ git config --global user.name "名前" $ git config --global user.email メールアドレス $
変更点を見る
$ echo test >> file1.txt $ git diff diff --git a/file1.txt b/file1.txt index e69de29..9daeafb 100644 --- a/file1.txt +++ b/file1.txt @@ -0,0 +1 @@ +test $
コミット
コミットは、他とちょっとオプションが違います。
コメントは、-mオプションで指定しますが、事前にaddするか-aオプションを付けないとコミットされません。
$ git commit -m "update" # On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: file1.txt # no changes added to commit (use "git add" and/or "git commit -a") $
こんな感じです。
$ git commit -a -m "update" [master b9e1275] update 1 files changed, 1 insertions(+), 0 deletions(-) $
変更の取り消し
gitには、revertとresetの2つの取り消しがあります。
HEADの変更は、記録を残さずに修正を取り消すことができます。
ちょっと怖いコマンドですが、分散リポジトリだから成立するというところでしょうか。
$ git status # On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: file1.txt # no changes added to commit (use "git add" and/or "git commit -a") $ git commit -a -m "reset" [master ce11a08] reset 1 files changed, 1 insertions(+), 0 deletions(-) $ git reset --soft HEAD^ $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: file1.txt # $
クローン
他のリポジトリからクローンを作ることができます。
Linuxのカーネルソースが格納されているリポジトリを取得する方法です。
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6