4

私は頻繁に使用するテンプレート ファイルを保存する git リポジトリを持っています。数日前に最新バージョンをチェックアウトし、これらのテンプレート ファイルにローカルで変更を加えました。

テンプレート ファイルのマスター リポジトリを変更したばかりで、マスター ブランチの最新バージョンをチェックアウトしたいのですが、ローカルの変更を削除したくありません。

master ブランチからの変更を作業コピーにマージするにはどうすればよいですか?

4

3 に答える 3

8

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ます)。

于 2012-05-21T20:10:23.147 に答える
4

ローカルの変更をいつでもスタッシュに保存し、最新の変更をプルしてから、保存した変更を再度適用できます。

git stash     -- save your local changes
git pull      -- get latest changes from remote
git stash pop -- apply your saved changes
于 2012-05-21T20:07:31.163 に答える