[解決済み】git stash -> 隠し持った変更を現在の変更にマージする
2022-04-09 23:21:52
質問
自分のブランチにいくつか変更を加えた後、そのブランチに他の必要な変更を隠しておいたのを忘れていることに気づきました。 そこで、隠した変更を現在の変更にマージする方法を教えてください。
このような方法はありますか?
私は最終的に諦めて、まず現在の変更をコミットし、次に隠した変更をコミットしましたが、一挙にコミットする方がよかったと思います。
解決方法は?
tl;dr
実行
git add
を最初に表示します。
コミットされていない変更がインデックスに追加されている場合(つまり、"staged" を使用している場合)、私はちょうどそのことを発見しました。
git add ...
を使用した場合)
git stash apply
(そして、おそらくは
git stash pop
) は、実際に適切なマージを行います。コンフリクトがなければ問題ありません。 そうでない場合は、通常通り
git mergetool
または、エディタで手動で。
はっきり言って、このようなプロセスです。
mkdir test-repo && cd test-repo && git init
echo test > test.txt
git add test.txt && git commit -m "Initial version"
# here's the interesting part:
# make a local change and stash it:
echo test2 > test.txt
git stash
# make a different local change:
echo test3 > test.txt
# try to apply the previous changes:
git stash apply
# git complains "Cannot apply to a dirty working tree, please stage your changes"
# add "test3" changes to the index, then re-try the stash:
git add test.txt
git stash apply
# git says: "Auto-merging test.txt"
# git says: "CONFLICT (content): Merge conflict in test.txt"
...これは、おそらくあなたが探しているものです。
関連
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み] Git リポジトリでのマージの衝突を解決するには?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] まだプッシュされていない Git マージを元に戻す
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] Gitで落としたスタッシュを復元する方法とは?
-
[解決済み] git のコミットを削除しても、変更は維持できますか?
-
[解決済み] コミットされていない変更を保存したまま復元する方法
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】現在のブランチの先端がリモートブランチより遅れているため、更新が拒否されました。
-
[解決済み】ファイルのアンリンクに失敗しました。もう一度試してみるべきですか?
-
[解決済み】Githubの認証に失敗した - ... GitHubはシェルアクセスを提供しない
-
[解決済み】「オリジン/マスターへのプッシュが拒否されました」というエラーが常に発生するのはなぜですか?
-
git revert 複数コミット
-
[解決済み] リモートの <ブランチ名> とマージするように設定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] LFはgitでCRLFに置き換えられます - それは何ですか、そしてそれは重要ですか?[重複]。
-
[解決済み] 現在の支店にはトラッキング情報がありません
-
[解決済み] GitBash | origin master - rejected (fetch first) | GitHub リポジトリにファイルがない。
-
[解決済み] Gitの隠し場所。「ダーティな作業ツリーには適用できません。