Category Archives: Git

githubデスクトップ

マスタの修正をブランチに取り込み

マスタの方が進んでいる状態

  • branchにチェックアウト
  • comapare > master で比較する
  • 以下のようにマスタの方が進んでいることを確認
    screenshot-2016-09-08-16-26-26

マスタを取り込む

branchにチェックアウトした状態で、
* uppdate from master をクリック
* branchにpush

AWS デプロイ

Github

Githubにプッシュ

AWS

SSH接続

PULL

// 差分のコミットがあるか確認
git fetch origin master

// PULL
git pull origin master

再起動

unicorn_rails -c /var/www/rails/{アプリ名を入れる}/config/unicorn.conf.rb -D -E production
sudo service nginx start

コミットをまとめる

コミットID確認

git log --oneline

コミットID確認結果

edit1
edit2
edit3
ohter

マージ

edit1,2,3をまとめたい時

git rebase -i {otherのコミットIDを指定}

マージ方法指定

  • edit2, edit3の「pick」→「S」に変更
  • The first commit’s message を 「test1」→「test_all」に変更

プッシュ済みのコミットの修正の場合は、コミット後、以下を実行

git push -f

masterの修正をブランチに取り込む

事前にmasterは最新化しておく

// 対象のブランチにチェックアウト
git checkout {ブランチ}

// リベース
git rebase master

// コンフリクトが発生した時
ファイルを修正して、git add .

// ステータス確認 (コンフリクトが解消されてることを確認)
git status

// リベース再開
git rebase --continue

Gitから特定のファイル、フォルダを監視対象から外す

ファイルごとに設定

ターミナル

git rm --cached {対象のファイルパス}

Source Tree

  • 新たに生成された未監視ファイルを「無視する」
  • gitignoreの差分が発生するのでコミット
  • push

フォルダごとに設定

ターミナル

git rm --cached {対象のフォルダパス}

Source Tree

  • 新たに生成された未監視ファイルを「無視する」 ※対象のフォルダをすべて無視するを選択
  • gitignoreの差分が発生するのでコミット
  • push

git pull rebase

競合がない場合

  1. リモートを第三者が修正
  2. 自分の修正内容をプッシュ
  3. エラーがでる
  4. Fetchする
    第三者の修正内容を確認できる
    Headの位置は変わらないのでローカルに変更内容は反映されていない
  5. 競合箇所がなければ、
git pull --rebase

第三者の内容を取り込むことができる。
6. 再度PUSH

競合がある場合

上記、5のタイミングで競合エラー
1. 競合箇所を修正して、rebaseを続ける
2. 再度PUSH