問題タブ [git-reset]
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 checkout があるときに引数としてパスを受け入れる git reset のポイントは何ですか?
作業コピーを更新するのgit reset
に対し、インデックスを更新することを理解しています。git checkout
私が理解できないのは、git reset
参照とパスの引数を受け入れる必要があるユースケースですか? この場合、私はいつも使いたいと思いgit checkout
ますか?
これは、人々がなぜできないのかと尋ねるたびに出てきますgit reset some-ref --hard -- some/path/to/file
。本当の問題は、私たちが持っているのになぜgit reset
受け入れるのかということです。git reset some-ref -- some/path/to/file
git checkout
誰かに2つの違いを教えるまで、これについて考えたことはありませんでした.
git - すでにプッシュされた git pull を元に戻す
これは1回限りのシナリオであるため、これが重複しているかどうかはわかりません。
「ベータ」ブランチがあり、新しい「リファクタリング」ブランチを開始しました。
- 「リファクタリング」ブランチで一連のコードを実行しました。
- 最新の変更をベータ版からリファクタリングに取り込みました (
git checkout refactor && git pull origin beta
) - 変更の準備が整ったので、ベータ版をチェックアウトし、変更をリファクタリングからベータ版に取り込みました。(
git checkout beta && git pull origin refactor
) - 私のベータ ブランチが最新ではないことに気付いたので、
git pull
最新のものをベータにプルする必要がありました。 - ベータ ブランチが最新の状態
git pull origin refactor
になったので、最新のブランチがそこにあることを確認するために別のブランチを実行しました (リファクタリングがベータにマージされているという自動コミット メッセージを受け取りました)。 - コードをプッシュしました:(
だから今、私は間違っていた2つのことを認識しています:
- ステップ 3 では、最初に git pull を実行して、ベータ版の最新の変更セットを取得する必要がありました。
git merge refactor
また、ステップ 3 で、代わりに電話するべきだったことに気付きましたgit pull origin refactor
(なぜこれを行ったのかは聞かないでください。今日は月曜日で、すばらしいリファクタリング コードをベータ版にしてテストを開始したかっただけです)。これらのことを両方行っていれば、後の手順は必要なかったことに気づきました。
私の質問は次のとおりです: 技術的には、すべてのコードがそこにあり、問題ないように見えますが、github のネットワーク グラフは非常にファンキーに見えます。代わりに、ベータ版にはリファクタリング ブランチからの私の個々のコミットがすべて含まれています。ばかげたマージをロールバックして、よりクリーンな方法で実行できる簡単な方法はありますか?
を試してみgit checkout beta && git reset --hard beta@{"1 hour ago"}
ましたが、問題は、最初に git pull を実行する必要があったときに、マージを発行する前に最新バージョンであったはずのベータ版ではなく、古いローカル バージョンのベータ版になってしまうことです。1 時間前にリモートベータ ブランチgit reset --hard origin/beta@{"1 hour ago"}
にリセットしてから? これらの変更をプッシュして、リモート コミットが上書きされたことを確認できますか?git merge refactor
事前に助けてくれてありがとう!リファクタリングが非常に重要なため、「git reset」を使用して何かを行うことをためらっています。また、ベータ版には、私が行っていない保留中の変更がたくさんあるため、リセットを台無しにしてコードを失うことの方が心配です。プルされたリファクタリング ブランチから手動でコミットを元に戻さなければならないことを心配しているよりも.
git - git reset --hard の後、コミットされていない、ステージングされていないファイルはどうなりますか?
git reset コマンドを理解しようとしています。ファイル file_1 を含む最初の commit_A があります。
ここで、ステージングしていない作業ディレクトリに file_2 を追加しました。今実行する
git reset --hard
と、file_2 は作業ディレクトリに残ります。しかし、file_2 をステージングしてから実行する
git reset --hard
と、file_2 はステージングされず、作業ディレクトリからも削除されます。
2 番目のケースでは file_2 が作業ディレクトリから削除され、最初のケースでは削除されないのはなぜですか?
git - デフォルトのアップストリーム HEAD への一般的な git リセット
現在のブランチのデフォルトの上流の HEAD にリセットする構文はありますか?
何かのようなもの:
origin/mybranch
現在のブランチの上流の HEAD の一般的な場所はどこですか?
git - git の最後のコミットを元に戻し、別のブランチに保存します
最後のコミットをロールバックして、後でテストするために別のブランチに入れる方法はありますか? 完全に破棄したくないいくつかの変更を行いました。さらにテストするために、それらを別のブランチに保管したいだけです。
誰でもこれで私を助けることができますか?
wordpress - git サブモジュールを使用して、この混乱から抜け出すにはどうすればよいですか?
サブモジュールとしてWordpressを使用したgitリポジトリがあります。私はWordpressを更新しようとしていましたが、本当にうまくいきませんでした. リモート リポジトリの 3.7.1 タグからすべてのコードを取得したいだけですが、うまくいきません。
「追跡されていないファイル」または「コミットされていない変更」のいずれかの束を残します。何が間違っているのかわかりません。このサブモジュールを 3.7.1 タグに入れるためにいろいろ試しましたが、うまくいきません。どちらかといえば、問題を悪化させているような気がします。必要なタグからコードをリセットして、他のすべてを破棄するのはそれほど難しいことではありません。何か助けはありますか?
git - リセット後にブロブをgit rebaseして変更を失った
GitHub for Windows で Git リポジトリを作成し、ファイルをコミットする前にリセットを行ったところ、すべてのプロジェクト/ファイルが失われました。
でファイルを見つけます
私のファイルは入ってい.git\lost-found\other
て、それらを表示できます$ git show SHA
が、実行すると次の$ git rebase SHA
ようになります:
エラー: オブジェクト SHA は BLOB であり、コミットではあり ませ
ん
ファイルを復元するにはどうすればよいですか?
または、別のプログラムまたは言語でファイルを読み取ることができますか?