問題タブ [git-stash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - git stash を参照するにはどのような方法がありますか?
の
git stash show stash@{x}
x はどのような値を取ることができますか (隠し場所のシリアル番号を指す整数を除く)?
git - git stash と pop は、ファイルが移動済みとしてマークされなくなりましたか?
ご覧のとおり、git は stash / pop の後に名前が変更された関係を失います。この関係を回復する方法、またはファイルが移動されたことを stash に知らせる方法はありますか? 変更前のシステム状態を確認するために隠しておくことがよくありますが、名前変更の関係が失われることは私にとって問題です。新しいファイルを削除し、もう一度 git mv を実行し、新しいファイルの内容を置き換える以外に修正する方法がわかりません。
git - Git でスタッシュ ポップを中止する
スタッシュをポップすると、マージの競合が発生しました。重複としてリストされている質問とは異なり、保持したいコミットされていない変更がディレクトリに既にいくつかありました。マージの競合をなくしたいだけでなく、ディレクトリをポップ前の状態に戻したいのです。
を試しgit merge --abort
ましたが、git はマージが進行中でないと主張しました。ディレクトリに元々あった変更を破棄せずに pop を中止する簡単な方法はありますか?
git - マージ競合中の「git stash」
私たちは何か悪いことをしました。
git stash save
マージの競合中に実行したため、作業を復元できません。
私たちが試したこと:
と:
助けてください!
git - TortoiseGit: "Stash POP が失敗しました!!!" 競合を解決した後でも繰り返す
TortoiseGit を使用して、リモートオリジンのリポジトリを操作しています。ある変更の途中で別の作業を行うために頻繁に停止する必要があるため、スタッシュ機能を使用して、保留中の開発を封鎖し、より即時の変更を行い、それらをコミットし、プッシュしてから、スタッシュに戻ります。
時間が経つにつれて、これはいくつかの隠し変更をもたらしました。私はそれらすべてを一度に取り除こうとしていました。
最初のいくつかのスタッシュ ポップは問題なく機能しました。スタッシュ ポップ、コミット、および繰り返しを行いました。ただし、最後のものの 1 つで、「Stash POP Fail!!!」というエラー メッセージが表示されました。(OMG! 3 つの感嘆符!!!) エラーの下のテキストは、ポップしようとしたファイルの 1 つにマージの競合があることを示していました。
プル後に競合が発生した場合と同じようにしました。競合しているファイルを編集して問題を修正し、競合を解決したことを git に伝え、最後に変更をコミットしました。
しかし、別の stash pop を実行すると同じエラーが発生し、違いを解決しようとすると、git が以前と同じ変更を stash から取得しようとしていたことがわかりました。もう一度競合を解決してコミットしようとしたとき、git は何も変更されていないことを通知したため、コミットするものは何もありませんでした。
最終的に、この問題を乗り越えるために (そしてさらに下の隠し場所にたどり着くために)、私はこのやや似た問題を SOで見つけ、受け入れられた回答の一番下にあるアドバイスをずっと受けました。git bash プロンプトを開きgit stash drop
、問題の原因となっている stash を削除しました。
私の質問は次のとおりです。
- これが問題を解決する最善の方法ですか、それともより直感的な方法がありますか? 理想的には、隠した変更を破棄しようとしているのを心配させない方法ですか?
- これが最善の方法である場合、TortoiseGit でスタッシュ ドロップを行う方法はありますか? マージ/破棄している違いを示す GUI ツールがあることに感謝しているので、git を使用してコマンドラインに戻らないようにしてください。
git - gitで複数のスタッシュを組み合わせる方法
frontend
これは、過去2週間のブランチのパイプラインです。
| Stash@{3}
以来、すべてのコードですStash@{1}
(2つの小さなコミットを除く)
| 小さなコミット
| 小さなコミット
| 2週間前の大規模な一括コミット、現在はリベースされ、Stash@{1}
私の作業ツリーは現在きれいです。
Stash@{1}
2週間前の一般的な開発コードの一括コミットの内容です(これはそもそも隠されているはずです)。このコミットは取り消され、stashに移動されました。
Stash@{3}
以来、そのツリーの最新の作業ですStash@{1}
(コミットされたいくつかの変更を除く)。
この膨大な作業プールから多数のコミットを実行できるように、作業ツリーでこれら2つの隠し場所を組み合わせる必要があります。
私は走っgit stash apply stash@{1}
てから試しました:
git stash apply stash@{3}
git stash show -p | git stash apply stash@{3}
しかし、どちらの場合も「ダーティワーキングツリー」が表示されます。この作業をどのようにマージできますか?は新しいので、競合があるところならどこでもstash@{3}
それを置き換えてほしいです。stash@{1}
git - `git stash apply` の中止
stash (間違ったブランチ) を適用したことを後悔しています。後で正しいブランチに適用するために、これを元に戻し、スタッシュをスタッシュ リストに戻すにはどうすればよいですか?
git - コンフリクト表記法を使用した Git 適用スタッシュ
奇妙に聞こえるかもしれませんが、いくつかの簡単なハック中に、以前のバージョンと .conf の後に隠した変更の両方を反映するようにファイルを変更したい場合がありますgit stash apply
。
この表記法は、競合を手動で解決するために Git によって使用されます。必ずしもそれを探しているわけではありません。必要なのは、外部のマージ ツールを使用せずに、エディターで両方のバージョンを使用する方法です。
おそらく、これは Git 自体ではなくエディターの機能を使用してより適切に取得できる可能性があります。その場合、私は Emacs を使用しています。
git - Git:ローカルの変更をすべて無視してブランチをチェックアウトするにはどうすればよいですか?
ディレクトリ(作成/削除)をいじり、テキストファイルとバイナリファイルの両方を追加/編集した後、gitにすべての変更を破棄し、ブランチを再び停止するように指示するにはどうすればよいですか?
現在、これら2つのコマンドを実行しています。
これはうまくいくようです。-fはローカルの変更を破棄するために使用されることをヘルプで読みました。その場合は...
同じことをしますか?
ありがとうございました!