cafegale(LeafCage備忘録)

LeafCage備忘録(はてなダイアリー)と統一しました。

WinXPでGit導入の手引き(書きかけ)

  • 利用OS:WindowsXP(32bit)
  • 今回使うGit:PortableGit-1.7.6-preview20110709
  • 兀兀 -雑多編-を参考にする。ただし、別の使い方をするので、若干やり方を変える。
  1. インストールする
    1. http://code.google.com/p/msysgit/downloads/listに行き、ダウンロードして適切な場所に解凍する。
    2. 環境変数PATHに〔(インストールしたディレクトリ)\PortableGit-1.7.6-preview20110709\bin〕を加える。
    3. リブートする
  1. SSH公開鍵を作成する
    1. コマンドプロンプトを起動して、ホームディレクトリに移動する。
    2. $ git config --global user.name "username"
    3. $ git config --global user.email xxx@xmail.com
    4. $ ssh-keygen(SSH 公開鍵を作成する*1
    5. .ssh/id_rsa.pubの中身をクリップボードにコピーしておく
  1. GitHubに登録する*2
    1. GitHubアカウントを作る
    2. “Account Settings” >“SSH Public Keys” >“Add another public key”に先ほどコピーしたキーを貼り付ける
    3. $ ssh -T git@github.comでテスト。"yes"をタイプして"HI username!"的なことを言われたら成功
      1. .ssh/known_hostsが作成される
    4. “Account Settings” >“Account Admin.”のAPI Token文字列をコピーして$ git config --global github.token (コピーした文字列)
  1. 試しにリポジトリを作ってみる(※リポジトリ=データ所蔵庫的な意味)
    1. Create Repositoryをクリックする
    2. 出てきたチュートリアル(Global setup:とかNext steps:)に沿ってコマンドを打つ。※ただし、コマンドプロンプトの場合、シングルクォーテーションはダブルクォーテーションにしないと通らない。
      1. 専用ディレクトリを作ってcdにする
      2. $git init
      3. $touch README(実験ファイルとしてREADMEを作る)
      4. $git add README
      5. $git commit -m "first commit"
      6. $git remote add origin <リモートURL>
      7. git push -u origin master

Git使用法

gitはWork Tree(ローカル)、Index、HEAD commit(個人レポジトリ)に分かれていて、
"git add"でIndexにファイルのスナップショットを撮る、"git commit"で実際にに記録する。
以下のページを見るとイメージが掴みやすい。
Gitを触ってみるよ その1「Gitのイメージと初めてのコミット」 - Stellaqua - TOMの技術日記
誰得UNIX: ステージを理解して git をもっと便利に使う
図解 Git
書き留めておくところ: gitの使い方を整理しておく

git add
WorkTreeの内容をIndexに反映する
git commit
Indexの内容をHEAD commitに反映する

基本的なコマンド
参考:http://sourceforge.jp/magazine/09/03/16/0831212
http://progit.org/book/ja/
Git Cheat Sheets JP

git log
コミットされたログを見る(新しい順)
git reset <間違えてaddした要素>
指定した要素をIndexから除く
git reset --soft HEAD^
直前のコミットをアンドゥ
git revert <コミット名>
WorkTreeを指定したコミット時点にまで戻す(変更履歴に残る)
git branch <ブランチ名>
新しくブランチを作る
git branch
今あるブランチの一覧(*が現在アクティブ)
git checkout <ブランチ名>
ブランチ切り替え
git checkout -b <ブランチ名>
新しくブランチを作ってそれに切り替え
git show-branch
ブランチ作成履歴
git stash <保存名もしくはコメントなど>
コミットはしないけど現在の状態を一時的に保存(一時的に別のブランチに行くときなど)
git stash list
スタッシュされてるWorkTreeのリスト

参考:git rebaseとgit mergeはともだち こわくないよ - 北海道苫小牧市出身の初老PGが書くブログ

git merge <取り込むブランチ>
マージ(統合)する
git rebase <派生元ブランチ>
現在ブランチの派生元の最新の版から派生し直す
git rebase --abort
rebaseを取り消す
git remote
設定済みのリモートリポジトリ(ネットワーク上にあるプロジェクト)一覧
git remote -v
url付きで表示
git remote add [shortname] [url]
リモートリポジトリ短縮名の追加(以後urlの代わりにショートネームでアクセス可能に)
git fetch [remote-name]
リモートからまだ持ってないデータを引き出す
git pull
クローン元の変更点を現在のブランチにマージ(統合)
git pull <変更点の取り込み元リポジトリURL>
現在のブランチに、リモートから変更点をマージ
git push <送信先リポジトリURL> <送信するブランチ>
他のリポジトリに自分のリポジトリの内容を取り込ませる。送信先にブランチがない場合は新規作成される。
git push <送信先リポジトリURL> <送信するブランチ>:<送信先ブランチ>
送信先のブランチを指定した場合。

※git pushで競合が起きて失敗したら、git pullで競合部分を取得してローカルリポジトリを修正するのが簡単