note

gitメモ - forkをmasterに追従させたあと、一部の変更だけ取り込む

おさらいしつつ、困った&解決したのでメモ

本家に追従させる

1. 確認する
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
2. 本家を登録する

$ git remote add {任意の名前} {本家のURL}

$ git remote add upstream https://github.com/xxxx/xxxxx.git

とか

$ git remote add fork_master https://github.com/xxxx/xxxxx.git

とかとか

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/upstream/master

remotes/upstream/masterが登録された。

本家から最新のコードをローカルリポジトリへマージする

1. 本家から最新のコードを取得する

$ git fetch upstream

2. 本家の最新コードをローカルリポジトリへマージする

$ git merge upstream/master

今回ここでエラー

$ git fetch upstream
$ git merge upstream/master
Updating 0dd90ca..bc98fdf
error: Your local changes to the following files would be overwritten by merge:
	src/config.js
Please commit your changes or stash them before you merge.
Aborting

src/config.js はマイ設定なので、本家の変更分だけ取り込みたい・・

本家からのアドバイス

  • src/config.jsにlocalの変更が入っているので、それをcommitするか、戻さないと mergeできません
  • commitすると、PR作るときに、そのcommitも入ってしまうのでsrc/config.jsをsrc/config.org.js のようにrenameして一旦、退避して
    git merge upstream/master
  • を実行
  • その後、src/config.org.js をコピーして戻せばうまくいくと思います

ふおぉ〜

できました。

ありがとうございました✨

ローカルの編集をプルリクするまで

  1. ローカルファイルを編集する
  2. ここからなんか GitKrakenでやってますが、本家に反映してほしいファイルだけ add する
  3. commitする
  4. 自分のリモートリポジトリに push する
  5. PR作る

で、本家から最新を落としてくる...の繰り返し。

-note