初めてのシステムと日記

システムも日記も初めてです。

リポジトリ作成からコミットまで

最近、SVNではなくGitを触ってるのでメモ。

  • Git

プログラムなどのソースコードを管理する分散型バージョン管理システム

動作がはやい、ネットワークがなくてもリビジョン管理ができるなどが特徴


コマンドの数が多かったので色々戸惑ってますが、動作がはやいのが中々いいなと思います。

以下、実際にリポジトリ作成からコミットするまでのコマンドです。

SVNでいう svn checkout

$ git clone [repository_URL] [directory_name]

[repository_URL]:リポジトリのURLを指定
[directory_name]:作成するディレクトリ名を指定する場合、ディレクトリ名を指定

  • 変更点を確認

SVNでいう svn status

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	new file:   README
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#	modified:   benchmarks.rb
#

On branch [branch_name]でどのブランチとの変更かを確認。masterはSVNでいうtrunk。

Gitでは

・コミットされるもの

・コミットされないけどローカルで変更されたもの
※上記例だとbenchmarks.rb

のステータスを確認できる。

このままだと編集したものがコミットされないので

コミット対象にする必要がある。

  • コミットするファイルを指定する

SVNでいう svn add だがGitでは少し異なる。

SVNでは新規ファイルをSVN管理下に置く時に用いる。

Gitでは上記に加え、変更したファイルのステージング、衝突したファイルに対する解決済みなどでも使う。

$ git add benchmarks.rb
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	new file:   README
#	modified:   benchmarks.rb
#

benchmarks.rbをaddしたことでコミット対象になった。

  • 変更点をコミットする

SVNでいう svn commit

$ git commit

いちいち変更したファイルをaddするのが面倒くさい時は

$ git commit -a

aオプションをつければ変更したファイルを自動検出してコミットします。

ただ、これだと新規ファイルはコミット対象にはならないです。


Gitはコマンドが多いのでなかなかに手ごわいですが、

使いこなせばコミット間違いをしれっと直せたり、

あとは何と言っても動作がはやいのでSVNより使えるのではと思ったりします。


参照元

「Pro Git」

http://progit.org/book/ja/

「Gitを使いこなすための20のコマンド」

http://sourceforge.jp/magazine/09/03/16/0831212