おもちゃ箱

頭の片隅に置いていて欲しい

Gitコマンドにまつわるetc.

Gitを使うようになったけどいまいちコマンドが覚えきれない、ページが散在してて探しにくい、などなどの理由により一度まとめてみます。
Eclipseを使うときもなるべくならプラグインよりコマンドの方が良いみたいです。
でも、プラグインは基本的に便利だから手放したくない…葛藤。

主なGitコマンド


クローンを作成する
git clone <remote repos path>
ブランチの切り替え
git checkout master
  • 上記はmasterに対する切り替え

  • masterとは?

    • リポジトリに最初のコミットを行った際に作成されるブランチのこと
    • 常に最新の情報が保たれている
ブランチの作成と新規ブランチへの切り替え
git checkout -b <new-branch>
  • ブランチを作成するときはmasterを最新化(pull)してから行う
追跡ブランチの作成
git checkout -t origin/<branch>
  • モートブランチと直接のつながりを持つローカルブランチのこと
  • git push を実行すると、Git は自動的にプッシュ先のサーバーとブランチを判断する
  • git pull を実行すると、リモートの参照先からすべてのデータを取得し、対応するリモートブランチの内容を自動的にマージする
ブランチの最新化
git pull
  • 現在のブランチの最新化が行われる
指定したブランチの内容を取り込む
git pull origin <remote>
  • 現在のブランチの指定したリモートにおけるコピーをフェッチして、 それを現在のブランチに即時マージする

    • git fetch コマンドを実行し、続いて git merge origin/<current-branch>. コマンドを実行するのと同等
    • pull = fetch + merge
  • フェッチ

    • リモートリポジトリから最新情報をローカルリポジトリに持ってくるコマンド
    • pullのようにファイルが更新されるわけではなく、ローカルリポジトリが更新される
  • マージ
    • ブランチを統合するコマンド
履歴の保存(commit)
git add <path> 
git commit -m "commit message"
  • git add
    • コミットするファイルを追加する
  • -m

    • コミットメッセージを指定してコミットするオプション
  • コミットは小刻みに行うこと

リモートリポジトリにブランチを作成 / ブランチに変更内容を反映
git push <repository> <refspec>
  • repository:remote add コマンドで追加したリポジトリ名やURLを直接指定することが可能
  • refspec:ブランチ名などが指定できる
ブランチの変更をmasterに反映(merge)
git checkout master
git pull
git merge <branch>
git push <repository> <refspec>
  • pushすることで最新のmasterブランチを公開

比較的使うコマンド


ブランチを一時的に保存(stash)
git stash
  • git stash save "message":メッセージを付加することも可能
git pull を引数無しで実行させる(追跡)
git branch --set-upstream-to=origin/<branch> branch_name
  • やむを得ずresetした時などにTracking解除されていたりする

コマンドにおける位置関係


(stash) ─ commit → push → remote
 

参考にしたページ


Pro Git
サルでもわかるGit入門
Git チュートリアルとトレーニング_ Atlassian
git fetchの理解からgit mergeとpullの役割
Git開発フロー #1