問題タブ [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 pop: stash の削除とステージング解除の手順を回避する
実行git stash pop
中に、解決する必要があるマージの競合が発生することがあります。これは、ブランチを切り替える前後にスタッシュ/ポップする必要があるときによく発生します。
競合に対処するのは問題ありませんが、これには 2 つの厄介な副作用があります。
スタッシュからのすべての変更はステージングされ、ステージングを解除する必要があります
stash@{0}
はドロップされず、手動でドロップする必要があります
このプロセスを少しスムーズにする方法についての提案を探しています。
git - 作業ツリーを変更せずにスタッシュを保存するGitコマンド?
作業ツリーを変更せずにスタッシュを保存する git コマンドを使用したいと思っていました。これは、git のリセットや、インデックスを台無しにするために行う可能性のあることから安全な軽量のバックアップとしてです。基本的に、「git stash save && git stash apply」と同等の機能を果たしますが、特定のテキスト エディター/IDE が不機嫌になる可能性があるため、作業コピーがまったく変更されない点が異なります。
このようなものは私が望むものに近づいていますが、完全ではありません:
これは機能的には機能しますが、実際の stash コミットにはメッセージが含まれているにもかかわらず、「git stash list」に stash メッセージが表示されないという問題があります。stash のサイズを考えると、stash メッセージは非常に重要です。
git - Git Stash&Worktree Woes
.gitディレクトリを含むフォルダの外にあるユーザー定義のワークツリーとgitを連携させるのに苦労しています。
基本的に、セットアップは次のようになります。2つのディレクトリがあります。1つは追跡するファイルを格納する「git-worktree」と呼ばれ、もう1つはリポジトリの.gitフォルダ(別名GIT_DIR)を含む「git-dir」と呼ばれます。
フォルダ「git-dir」にcdして実行し、リポジトリを初期化します。
これにより、リポジトリが正常に初期化され、「git-dir」フォルダーにいる間に、作業ツリーにあるファイルを追加し、git statusを実行して、それらをコミットできます。涼しい。
ここでのボールのキックは、git stashを実行しようとすると、エラーが発生します。
追跡したいファイルを含む「git-worktree」フォルダーにワークツリーを設定していることがわかっているので(または少なくとも私は思うので)、これはBSです。
git config --local -lは私に次のことを示しています:
.gitフォルダーをローカル構成ファイルに手動で追加して、それが役立つかどうかを確認しましたが、役に立ちませんでした。
これがキッカーです。git-dirの親であるディレクトリにワークツリーを設定すると、 Git stashが機能します。たとえば、ホームディレクトリを指定するようにワークツリーを設定した場合です。
だから私があなたたちに持っている質問は、私のワークツリーがルートに戻るgit-dirの親パスに沿ってだけでなく、ファイルシステム上のどこにでも存在できるようにするためにgitに指示するためにどのような設定が欠けているのですか?確かに、git-dirとwork-treeを好きな場所に配置し、gitに指示した後、すべてが機能するようにする方法が必要ですか?読んでくれてありがとう。任意の洞察をいただければ幸いです。
git - git filter-branch --subdirectory-filter の後に stash を保持する
私は最近、を使用してリポジトリ (にあるbigproj
) を分割しましたgit filter-branch --subdirectory-filter deep/in/my/project
。次に、.git
ディレクトリをに移動しましたdeep/in/my/project
。
現在、隠し場所は奇妙な状態にあり、一番上の隠し場所は次のようなものです。
このエラーが発生するため、この隠し場所を削除できません (の後でgit stash drop
):
現在、stash@{1} の refid がわかっている場合でも、bigproj
階層内のファイルの差分が含まれています。deep/in/my/project
階層に属するファイルのみが含まれるように stash データを書き換えることは可能ですか?
git - gitの現在の変更を中止した後にブランチを切り替える
gitリポジトリのクローンを作成してから、マスターブランチで遊んでみました。しばらくして、(コミットせずに)行った変更を無視して、別のブランチに切り替えたいと思います。ただし、コミットされていない変更があるため、切り替えができなくなります。それらを隠さずに無視するにはどうすればよいですか?これが起こることです:
git - 保存された変更を適用できないgitstash
git stashsavechanges_1を使用してgit状態を保存してみました。gitstashlistを使用してスタッシュリストを表示できます
しかし、git stash apply stash@{0}を使用してstashを適用しようとすると。現在、変更がgitdiffで更新されているのを確認できません。「Alreadyuptodate!」というメッセージが表示されています。
したがって、要するにgitstashは保存された変更を適用できません。どんな助けでも。
git - Gitでステージングされていない変更のみを隠しておく方法は?
このワークフローを使用したいと思います:
- いくつかの変更をステージングします。
- ステージングされていない変更をスタッシュに保存します。
- ステージにあるもの(ビルド、テストなど)でいくつかのことを行います。
- 専念。
- ステージングされていない変更を復元します。
ステップ2を実行する方法はありますか?
例:
git - 隠し場所に対するGitの差分
スタッシュ解除によって現在の作業ツリーに加えられる変更をどのように確認できますか?適用する前に、どのような変更が行われるのか知りたいです!
git - Gitマージの競合の解決
Gitリポジトリは、複数の開発者のローカルマシンに複製されています。リポジトリ内のコードにいくつかの変更が加えられました。エラーが発生しました:
私はオンラインでかなりの数のスレッドを読みました、そしていくつかの異なるオプションが提案されました。1つのアプローチが実行されました:
隠しの基本原理は理解できたと思います。私の質問は、これは良い解決策ですか、そしてこのアプローチを使用して問題が発生する可能性がありますか?私は一般的にWeb開発について十分に理解していますが、私はかなり基本的なGitユーザーであり、現時点では問題から抜け出す能力はあまりありません。