1

同じチェンジセットを2つの異なるブランチに適用したいと思います。

これが私がすることです:

git init
touch README
git add README
git commit -m "initial"

git branch other

touch file2
git add file2
git stash

git checkout other
git stash apply

git checkout master
git stash apply
git stash drop

そしてそれはうまくいきます。file2は両方のブランチに存在します。しかし、他のブランチに変更してからマスターに戻ると、file2はマスターに存在しなくなります。なぜそれが起こっているのですか、そして私はそれについて何ができますか?また、1つの制限があります。隠された変更を適用した後、マスターブランチでgitcommitを呼び出すことができません。

gitバージョン1.7.11.msysgit.0

4

2 に答える 2

2

git stash apply変更は作業ツリーとインデックスにのみ適用され、リポジトリには適用されません。したがって、git checkoutコミットする前に別のブランチを作成すると、それらのローカル変更が失われます。それらをそのブランチに保持させたい場合はブランチにコミットする必要があります。

于 2012-07-23T12:34:29.987 に答える
0

それは私にとってはうまくいきます。

同じチェンジセットを適用するためのより良い方法は、次のようになります。

  1. git commitのチェンジセットmaster
  2. git checkout other
  3. git cherry-pick master
于 2012-07-23T12:35:49.220 に答える