git

git:分散型バージョン管理システム
コメントアウトだらけのソースコードやソースファイル名のスーパーサイヤ人化(※)を防ぐ.

導入
(環境:Ubuntu 12.10)
# apt-get install git

まずやる設定
% git config --global user.name "名前"
% git config --global user.email メールアドレス

エディタを指定
% git config --global core.editor emacs

プロキシの設定
% git config --global http.proxy "プロキシ設定"

設定の確認
% git config --list
user.name=Shohei Okada
user.email=okada@jnlp.org
...
あるいは
% cat ~/.gitconfig
[user]
        name = Shohei Okada
        email = okada@jnlp.org
...

管理したいディレクトリに移動し
% git init


主に使うコマンド(ローカル編)
% git add <file>               # 対象ファイルを追跡対象に追加・ステージングエリアに追加
% git commit -m "<comment>"    # ステージングエリアのファイルをリポジトリにコミット
% git status                   # ファイルの状態の確認
% git rm <file>                # ファイルを追跡対象からはずす・ステージングエリアから削除(ファイルも実際に削除される)
% git rm --cached <file>       #
ファイルを追跡対象からはずす・ステージングエリアから削除(ファイルは実際に削除されない)
% git mv <file_from> <file_to> # ファイルの移動・名前の変更
% git log                      # コミットログの閲覧
% git diff                     # 差分の表示(作業ディレクトリとステージングエリア)
% git diff --staged            # 差分の表示(ステージジングエリアと直近のコミット)
% git commit --amend           # 直前のコミットのやり直し
% git reset HEAD <file>        # ステージの解除
% git checkout -- <file>       # 作業ディレクトリの編集を破棄)

主に使うコマンド(リモート編)
% git clone <url>                            # URLのリポジトリをローカル環境にクローン
% git remote                                 # 今までに設定したリモートハンドル一覧を表示
% git remote -v                              # 名前に対応するURLも表示
% git remote add <shortname> <url>           # リモートリポジトリの追加.以後,URLの代わりに<shortname>で指定可能
% git fetch <remote-name>                    # リモートリポジトリからデータを取得
% git merge                                  # 作業ディレクトリにマージ
% git pull <remote-name>                     # fetch + merge
% git push <remote-name> <branch-name>       # リモートへのプッシュ
% git remote show <remote-name>              # リモートの情報を表示
% git remote rename <remote-name> <new-name> # リモートのリネーム
% git remote rm <remote-name>                # リモートの削除

ブランチ関連
% git checkout -b <branch-name>         # 新しくブランチを切って,そこに移動
% git checkout <branch-name>            # ブランチの移動
% git branch                            # ブランチ一覧を表示(*がついているのが現在のブランチ)
% git branch -a                         # リモートも含めたブランチ一覧
% git branch -d <branch-name>           # ブランチの削除
% git push <remote-name> :<branch-name> # リモートのブランチの削除

その他
% emacs .gitignore



(※)例えば,こんな状態(極端な例)
% ls
calculate.py        calculate2_kai2.py  calculate3_kai2.py
calculate2.py       calculate3.py           
calculate2_kai.py   calculate3_kai.py  

参考:
Git - Book

「計算機関連」に戻る
Comments