私は頻繁に使用するテンプレート ファイルを保存する git リポジトリを持っています。数日前に最新バージョンをチェックアウトし、これらのテンプレート ファイルにローカルで変更を加えました。
テンプレート ファイルのマスター リポジトリを変更したばかりで、マスター ブランチの最新バージョンをチェックアウトしたいのですが、ローカルの変更を削除したくありません。
master ブランチからの変更を作業コピーにマージするにはどうすればよいですか?
gitのマージ(またはリベース)戦術を最大限に活用するために、ローカルリポジトリに変更をコミットしてからプルすることができます。プルすると、リモートリポジトリとローカルリポジトリがマージされます。これは、アップストリームの変更に応じて、早送りまたは再帰的なマージになる場合があります。このために新しいブランチを作成することもできます(マスターブランチに影響を与えずに、必要に応じてオリジンにプッシュできます)。
隠し場所はここであなたを助けることができます、しかしあなたは隠し場所が引っ張られた後に適用することができないという危険を冒します。
簡単な例:
git add .
git commit -m 'My local template changes'
git pull origin master # fix any conflicts
新しいブランチの例:
git checkout -b newbranch
git add .
git commit -m 'My local template changes'
git pull origin master # fix any conflicts
後者は、リモートの変更をmaster
ローカルnewbranch
にマージしますが、この状況では、のローカルコピーmaster
がまだ遅れていることに注意してください(つまり、変更を行ったgit checkout master
場合でも、変更を取得する必要がありgit pull
ます)。
ローカルの変更をいつでもスタッシュに保存し、最新の変更をプルしてから、保存した変更を再度適用できます。
git stash -- save your local changes
git pull -- get latest changes from remote
git stash pop -- apply your saved changes