問題タブ [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.
eclipse - 単一のファイルを置き換えるegit - HEADリビジョンとgit indexのファイル
egit git eclipse プラグインでは、単一のファイルを右クリックして [Replace With] > [HEAD Revision] を選択することで、単一のファイルを「リセット」できることを知っています。git indexのHEADリビジョンとファイルでの置換の違いは何ですか?
git - gitresetの後に残ったステージングされていない変更--hard
の後git reset --hard
に、セクションgit status
内のファイルを表示しますChanges not staged for commit:
。
私も試しましたがgit reset .
、無駄にgit checkout -- .
なりました。git checkout-index -f -a
では、どうすればこれらのステージングされていない変更を取り除くことができますか?
これは、VisualStudioプロジェクトファイルにのみヒットするようです。変。このペーストを参照してください:http://pastebin.com/eFZwPn9Z。これらのファイルの特別な点は、.gitattributesに次のようなものがあることです。
また、autocrlf
私のグローバルではfalseに設定されています.gitconfig
。それはどういうわけか関連があるでしょうか?
git - コミット済みのファイルを失わずにリセット
ファイルを誤って間違ったブランチにコミットした場合、通常はgit reset --hard HEAD~1
. ただし、この方法を使用すると、通常、コミットされたすべてのファイルが失われます。編集したファイルを失わずにコミットをリセットする方法はありますか?
git - Gitの変更を破棄する正しい方法
変更を破棄したり、Gitを使用して以前のコミットに戻したりするためのさまざまなアプローチを見てきました。私は通常、どちらが自分の状況に適しているかを理解できますが、その過程で、さまざまなアプローチにかなり混乱しました。最近、いくつかのファイルの名前変更を元に戻そうとしていましたが、古いバージョンのファイルをどれだけ頑張っても、古いファイルを元に戻すgit checkout
ことができませんでした。
どのアプローチを使用するのか、そしてその理由についての説明を探しています。これがいくつかのアプローチについての私の理解です。答えは非常に文脈的なものかもしれないと思いますが、どの文脈がどのアプローチを必要とするかを整理してみたいと思います。
1)git checkout -- .
- 最新バージョンのファイルをチェックアウトするために使用されます。古いファイルは上書きされますが、削除、名前変更、または新しいファイルには影響しません。
2)git stash save --keep-index
続いてgit stash drop
- コミットされていないファイルを隠してから、完全に削除します。保持したい変更をコミットし、破棄したい変更をコミットしていない/ステージングしていない場合は、適切なアプローチです。
3)git reset --hard
- ファイルの名前変更、削除、追加など、最後のコミット以降のすべてを消去します。
これが私の現在の私の選択肢の理解です。私の説明に何か変更はありますか?git revert
上記のコマンドの代わりにいつ使用するかもわかりません。
ソース投稿:
git-reset - Git get latest commit after reset -hard
I did a git reset -hard FETCH_HEAD before and I can't figure out to get back to my latest commit.
When I do git status on my master branch this is what comes up
When I open the app in my directory the 12 commit "Replaced Post with Events" is the latest file shown. I'd like to get back to my last commit of 8 "Added the event Show page, Upload Event Pic"...any ideas?
git - 公開ホストの公開鍵を github のアカウントに追加すると、セキュリティ上の問題はありますか?
つまり、他の人が github でホストされている私の git リポジトリにプッシュする可能性があるため、誰でも使用できます
これは、github でホストされている私の git リポジトリを破壊しますか?
悪者が上記のコマンドを実行した場合、履歴は失われますか?
git - git rm --cached ファイルと git reset ファイル
私はGitを学ぼうとしています。私は混乱しています
と
どちらのコマンドも、ファイルをステージングされた領域からステージングされていない領域に移動するようです。コマンドの違いは?
git - Git は変更されたファイルを取り消すことができません
前回のコミット後とまったく同じように、クリーンな作業ディレクトリに戻りたいだけです。Git は、私が行っていない大量のファイル変更を報告しているので、行末に関係があると思われます。
私はこれを行うためにすべての通常の容疑者を試しました:
git reset --hard
git commit -- .
git stash
git clean -fd
何をしても、git status
変更されたものと同じファイルが常に表示されます。私に何ができる?コミットされていない変更が別のブランチに隠されているため、すべてを爆破するのではなく、マスター ブランチを「ロールバック」するだけです。
編集:出力
次に、提案されていることと、見つけた他のすべてを試します。
ご覧のとおり、ロールバックしても変化はありません。
それで、私はアドバイスに従い、すべてのスペースを無視して差分を実行しました。疑わしいように、スペースを無視しても違いはないようです-だから、それは行末だったと思います! これを修正するにはどうすればよいですか? 無駄に設定しましautocrlf
た。true
git - クローンによる GIT 開発のリセット
私の現在の設定は、Prime リポジトリ (作業ディレクトリ)、Hub リポジトリ (ベア、開発者がプッシュおよびプルする)、Clone (開発者用) です。Prime リポジトリと Hub リポジトリは、さまざまなフックを介して同期されます。
reset
問題が発生したため、Prime で以前のコミットを実行しようとしましたが、エラーが発生しました: To prevent you from losing history, non-fast-forward updates were rejected
.
これは理にかなっていますが、必要に応じて Prime でリセットできるようにしたいと考えています。
reset
この状況で以前のコミットを処理する最善の方法を知りたいです。
ありがとう!
git - git マージ コミットをやり直すにはどうすればよいですか?
継続的インテグレーション サーバーで単体テストに失敗したマージ コミットを修正したいのですが、テストに失敗したコミットを履歴に残したくありません。
このコミットは CI サーバーによってのみ使用されたので (そして、他の誰かによって引き下げられることはありませんでした)、マージを修正してから--force
プッシュして、既存の失敗したマージ コミットを置き換えたいと思います。
私の問題は、失敗したテストを修正し、マージを再コミットしてから、その変更を強制的にプッシュできるように、元のコミットが行われる直前の状態に簡単に戻る方法を見つけられないことです。
解決しなければならない競合のあるファイルがかなりあり、1 つを除いてすべてが正常に解決されたため、マージ全体をやり直す必要はありません。
これまでに試したこと
試行 1:git reset
私の最初の試みは、マージコミットの前に混合リセットをコミットに戻し、マージによって導入されたバグを修正してから再コミットすることでした。
残念ながら、これにより、すべてのブランチの変更が静かに組み込まれるマージ以外のコミットが発生します。これは、私が望んでいるものではありません。*8')
試行 2: reset
、stash
、merge
&apply
次に、stash を使用して、最初のマージ試行中に行った変更を保存しようとしました。
残念ながらgit stash apply
、隠した変更を既存の競合するマージ ファイルとマージしようとすると、エラーで失敗します
ダーティな作業ツリーには適用できません。変更をステージングしてください
git add .
実行を使用して作業ディレクトリを忠実にクリーンにするgit stash apply
と、競合が発生するだけでなく、競合が発生し、削除されるべきファイルが再び追加されます。
試行 3:amend
および/またはrebase
.
問題と元のコミットを修正するためにqqxによる素敵でシンプルな提案を試みましたが、実際にマージ途中の状態に戻らないと、マージ ツールにアクセスできなくなります。git commit --amend
コミットするgit mergetool {file}
と、エラーが返されるだけで実行できなくなります。
{file}: ファイルをマージする必要はありません
マージの競合を修正しようとするとき、 のようなツールを使用して、ベース、左、右、および現在のリビジョンをすべて一緒に表示できるのが本当に気に入っていますkdiff3
。
を使用しrebase
ても同じ問題が発生します。
希望する結果を達成できるワークフローに関するヒントをいただければ幸いです。