NeiNeigh's blog

覚書のようなブログ.PC・アプリケーション・プログラミング・オーディオ・アニメ

gitの使い方

ソースコードのバージョン管理したいから,そろそろgitの使い方をいい加減おぼえる.

導入

ここらへんを参考にすると良い.
http://linux.keicode.com/prog/git.php
http://www.backlog.jp/git-guide/intro/intro2_1.html

$ sudo apt-get install git-core
$ sudo apt-get install git-doc

gitk(たぶんGUIバージョンのgit)も使うなら

$sudo apt-get install gitk

次に名前とメールアドレスを登録

$ git config --global user.name "foo"
$ git config --global user.email "bar@baz.com"

リポジトリの登録

リポジトリにしたいディレクトリに移動して

$ git init

これでおk

gitコマンド

コミット

git status

これで,管理しているレポジトリの状態を確認できる.
管理するファイルをaddしてからコミットする必要がある.

git add .

これでそのディレクトリの全ファイルがaddされる.
.gitignoreを作っておいて,"*~"とか書いておけばemacsのバファ的なやつは無視されるので良い.

もう一回statusで確認すると,ファイルがaddされたのを確認できる.
これでコミットの準備は完了.次のコマンドでコミットする.

git commit -m "コメント"

logを見ることで,レポジトリの変更履歴を参照できる.

git log

バージョンを戻す

コードがおかしくなってバージョンを戻すとき,
git logでログを確認してそこに表示されているコミットIDで指定して行う.
戻す系のコマンドはここに良くまとまっている.
http://tech.basicinc.jp/Git/2013/06/15/git_command/

基本的には git reset で戻すのだが,-hardオプションを付けないと,
コミット結果が元に戻るだけで,レポジトリ内のファイルは戻らない.
コミットIDっていうのは,logででてくる長ったらしいSHAのやつ.

 % git reset --hard 864e191767e5ad7b8dc883e5fe1e7dcf0b941f07
HEAD is now at 864e191 sample: foo

こういう感じで実行すると元に戻る.
うわーまちがってresetしてファイル消しちゃった~ってときも,上記URLに戻す方法のってる.

戻す方法は,resetの他にもrevertというのがあって,
前者はコミット履歴も戻り履歴が削除されるが,後者の場合は履歴が残る.たぶん.

注意

まだ試してないけど,レポジトリ内のファイルを削除したり,リネームしたりするときは

git rm foo
git vm foo bar

とかってやらないと,まずいことになるっぽい.注意.


branchで管理するともっとやりやすくなるだろうから,そこらへんもあとで調べる.