Gitの基本的な使い方


■gitの基本的な使い方

■初期設定
 ・リポジトリをクローンする場合
  用途に合わせて下記いずれかを実行
  git clone リポジトリ先のブランチ
  git clone -b リモートのブランチ名 リモートのリポジトリ先

 ・リポジトリをクローンしない場合
  git init→ローカルのリポジトリ作成
  git remote add origin リモートのリポジトリ先→リモート先の設定
  git remote -v→リモート先の確認
  git fetch→リモートリポジトリの情報をローカルリポジトリに持ってくる
  git checkout 取り込みたいブランチ名

■ローカルからリモートに反映
 git fetch
 git checkout 作業を行うブランチ名A
 git add ファイル名
 git commit -m "コミットのコメント"
 git push origin 反映したいブランチ名A

■リモートリポジトリの更新をローカルリポジトリに取り込む
 下記のいずれかコマンドを実行する
 ケース1
 git fetch ブランチ名A
 git checkout ブランチ名A
 git pull origin ブランチ名A

 ケース2
 git fetch
 git checkout ブランチ名A
 git merge origin/ブランチ名

 ケース3
 git fetch origin ブランチ名A
 git checkout ブランチ名A
 git merge FETCH_HEAD

■リモートリポジトリの更新(git pull、git fetch + git mergeなど)でコンフリクト(競合)が起きた場合の対応
 ・手動で行う場合
  コンフリクトを起こしたファイルを開くと差分が表示される
  ======= の上がローカルリポジトリ、下がリモートリポジトリなので手作業で修正を行う。

  例:
  var sortNumber = function (number) {
   number.sort(function (a, b) {
   <<<<<<< HEAD
   if (a === b) {
   =======
   if (a == b) {
   >>>>>>> 839396c5383737ec06b9c2a842bfccc28f3996ef
    return 0;
   }
   return a < b ? -1 : 1;
   });
  };

  git add コンフリクトのファイル
  git commit -m "競合を解決"
  git push origin 作業を行うブランチ名

 ・どのブランチを優先させるのかわかっている場合
  git checkout --ours "ファイル名"→ローカルにあるファイルを優先するのでリモートにあるファイルは反映されない
  git checkout --theirs "ファイル名"→ローカルにあるファイルはリモートにあるファイルで反映される
  git add コンフリクトのファイル
  git commit -m "競合を解決"

■リモートにある情報をローカルのリモート追跡ブランチに取り込む(ファイル自体には取り込まれない)
 下記いずれかを実行
 git fetch→リモートのすべての情報をローカルのリモート追跡ブランチへ取り込む
 git fetch origin ブランチ名→リモートの特定のブランチをローカルのリモート追跡ブランチ(FETCH_HEAD)へ取り込むとき

■tagの作成→確認→リモートへ反映
 git tag -a タグ -m 'タグのコメント'
 git tag
 git push origin タグ名