ざっくりまとめ
修正中内容は残したままどうにかこうにか処理したい。
reset --hard
ではなくreset --soft
など、softで行う。
変更修正を反映させたくないファイル設定
- 常にunstaged
git update-index --assume-unchanged [ファイル名]
ローカルブランチを別名のリモートブランチにpush
git push local_branch:remote_branch
commitで困った時
自身の修正内容の次にcommitする
git pull リモート名 ブランチ名
- commit履歴がmasterなどとずれるが、コンフリクトしていないのであれば問題ない。
- masterなどにプルリク後mergeされる際には追加修正分だけきちんとのる。
自身の修正前にmaster(リモートブランチ)をpullする
git pull --rebase リモート名 ブランチ名
* rebaseなので、修正箇所以外の変更履歴に齟齬があると動作しない。
* コンフリクトだと思って直すと、commit番号が変わる。
* 問題なく動作すれば、コミット履歴がmasterなどと同じ状態になるため、確認しやすい
別のブランチに特定のコミットをマージしたい場合。
git checkout branch_name
git cherry-pick コミット番号
特定のファイルだけ、以前のcommitの状態に戻す方法
git checkout コミット番号 ファイルパス
別のリモートに関わる時
別のリモートを追加する
git remote add リモート名(任意) リモートURL
git fetch リモート名
※ここで、fetch
をしていないと、以下のようなファイル確認等ができない。
別のリモートのファイル確認
git show リモート名/ブランチ名:./ファイル名
* 場所は同じところでやるか、パス指定するっぽい
別のリモートから特定のファイルやディレクトリを取り込む場合
git checkout リモート名/ブランチ名 ./ファイル名
* 場所は同じところでやるか、パス指定するっぽい
pullした後困った時
直前のpullを全て無かったことにする
git reset --hard ORIG_HEAD
ローカルブランチをリモートブランチの内容で上書き
git reset --hard リモート名/ブランチ名
###直前の変更分を残したままにできる。
git fetch リモート名
git reset --soft FETCH_HEAD
特定のブランチ切る時
特定のコミット番号からブランチを切る方法
git checkout -b ブランチ名 コミット番号
特定のremoteブランチからローカルブランチ切る方法
git checkout -b ブランチ名 リモート名/ブランチ名