Upstreamの更新取り込み
自分の翻訳用リポジトリは、
upstreamリポジトリ( git@github.com:kodolinija/stardeus-translations.git
)からforkして翻訳作業をしているため、
本流( upstream
)で更新があったら取り込んでいく必要があります。
※ 自分のローカルのgitクライアントでは、SSHのconfig設定を変更してgithubアカウントの振り分けをしています。このためドメインが yurama.github.com
になっています。
まず、ローカルの作業環境のリポジトリで、リモートリポジトリに upstream
を追加しましょう。
次のコマンドを実行します。
git remote add upstream git@yurama.github.com:kodolinija/stardeus-translations.git
これで upstream
リポジトリをローカルの作業リポジトリの参照先として追加しました。
次に下記のコマンドで、
追加した upstream
のブランチを最新化して取り込みます。
git fetch upstream
これは upstream
に更新があるたびに実施します。
これで、upstream
リポジトリのブランチを今後 remotes/upstream/hoge
で操作できます。
※ upstream
から取得できているブランチは git branch -a
で確認できます。
そして、手元のリポジトリで main
ブランチをチェックアウトし、
git rebase remotes/upstream/main
で、upstream
のコミットを取り込み、自分のコミットをその上に配置します。
これで手元の main
ブランチは upstream
のものと同一になります。
※ checkout -B main remotes/upstream/main
操作でもいいのですが、向き先が upstream
になってしまうとか、万が一ブランチを切り替え忘れていた場合に消し飛ばしてしまうとかの弊害があるので念のためrebaseします。
Pull Request前のオペレーション
Pull Request 時に自動的に reject されたり conflict したりしないように、
あらかじめ upstream
の更新を取り込んでから push
して Pull Request をします。
先述のように、 upstream
から main
ブランチを取り込んで更新し、
作業中の自分のブランチ( 和訳作業なので feature/Japanese
ブランチ )をチェックアウトして、
git rebase main
します。これで本流の最新コミットの上に、自分のコミットを配置できます。
そして、git push -f
でpushし、そこから Pull Request します。
これで Pull Request の差分が自分のコミットだけになっているはずです。