おれの屍を越えていけ

技術ブログの予定

Gitまとめ

Git bookを読んだまとめです。

gitにはファイルが帰属する三つの主要な状態がある。

  • コミット済: ローカル・データベースにデータが安全に格納されている
  • 修正済: ファイルに変更を加えていますが、データベースにそれがまだコミットされていない
  • ステージ済: 次のスナップショットのコミットに加えるために、現在のバージョンの修正されたファイルに印をつけている

基本機能

gitの使い始め方

git init

これにより、カレントディレクトリに.gitというサブディレクトリができる。

既存のリポジトリのクローン

git clone URL [ファイル名]

ファイルの変更後

git add .
git commit -m "変更点などのメモ"

ファイルの状態の確認

git status [-s]

現在のブランチや未コミットファイルの確認などができる。

コミット履歴の閲覧

git log

ブランチ

ブランチとは、開発の本流から分岐し、本流の開発を邪魔することなく作業を続ける機能のことです。

ブランチの作成

git branch ブランチ名

これにより、新しいブランチ「ブランチ名」ができる。ブランチが作成されるだけなので、HEADは今まで作業していたブランチに表示される。

ブランチの切り替え

git checkout ブランチ名

このブランチでコミットすると、時間が1つすすむ。別のブランチに移ると、HEADは先ほどのコミットの前の時間に戻る。git bookでは分断した歴史と表現している。

 git log --oneline --decorate --graph --all

で分断した歴史を確認できる。

ブランチの作成と切り替えは同時に行うこともできる。

git checkout -b ブランチ名

マージの仕方

git checkout master
git merge あるブランチ
git branch -d あるブランチ

マージすることで、別ブランチの結果をmasterブランチに加える。

コンフリクトが生じた場合

git status
You have unmerged paths.
  (fix conflicts and run "git commit")

Unmerged paths:
  (use "git add <file>..." to mark resolution)

    both modified:      コンフリクトのあるファイル

no changes added to commit (use "git add" and/or "git commit -a")

どのファイルでコンフリクトが発生してマージできなかったを知るために、git statusを行う。 コンフリクトは<<<<<<< と ======= と >>>>>>>で明示されているので、すべてのコンフリクトを解消し、再びgit add .を行う。(mergetoolはパス)

ブランチの管理

git branch

このコマンドにより、存在しているブランチの一覧を列挙する。HEADがついているブランチには*が先頭につく。git branch --no-mergedは、まだマージされていないブランチを表示する。

以下工事中