読者です 読者をやめる 読者になる 読者になる

気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【メモ】ソフトウエアデザイン(2015年6月号)Git入門

Git メモ 読書メモ

この雑誌を購入し、Gitについて改めて学ぶことにした gihyo.jp

Gitの特徴

  • ファイルの状態を簡単に記録できる
    • 記録した状態のファイルに、いつでも戻すことが可能
  • ファイルの同時編集が可能
    • 他の開発者の編集で、不用意に上書きされ、自分の作業が消失することはない
  • ファイルのバックアップが不要
    • 任意のファイルの状態を記録可能
    • いつでも記録したファイルを取り出せる

リポジトリ

  • ファイルの状態を格納するデータベースのようなもの
  • 「変更内容」と「その変更を補足するメッセージ」のセットで格納されている
  • どんなファイルでも格納できるが、主にソースコードや画像ファイル、設定ファイルを格納する

リポジトリの種類

※Git自身には、共有リポジトリ、ローカルリポジトリといった概念はない

ローカルリポジトリでの作業

  • 作業コピー

    • ローカルリポジトリ上のディレクトリ、ファイルを作業コピーという
  • リポジトリのインデックス(一時領域)に追加

git add target
git commit
git log

# 1行1コミットで表示
# git log --oneline

リポジトリに登録された内容は、各登録ごとにハッシュ値で管理されている

(commitの行にある16進数:他のバージョンシステムでいうリビジョンのようなものを示す)

  • commitの内容を確認する
git show ハッシュ値
git rm target

git rm -r dir # ディレクトリを再帰的に削除
git mv before after
  • 編集したファイルの変更を取り消す
git reset --hard HEAD

リモートリポジトリへの作業

  • ローカルリポジトリ上の変更を共有リポジトリに送信する
    • push
  • 共有リポジトリ上の他の開発者の変更を取り込む

    • pull、fetch
  • git push origin master

  • pull

    • commitを取り込むときに、作業ツリーに直接変更内容を反映する
    • リポジトリ内のファイルが、共有リポジトリ上の最新情報になる
    • (作業コピーに直接反映)
  • fetch
    • 共有リポジトリのcommitの内容をローカルリポジトリに取り込むだけで、ファイルへの反映は行わない
    • (作業コピーには変更を反映しない)