タグ付けされた質問 「git-reset」

現在のGitリポジトリヘッドを指定したコミットに設定し、オプションで一致するようにインデックスと作業ツリーをリセットします。

6
Gitでローカルコミットを破棄する方法は?
私は何かに取り組んでいて、それが完全にねじ込まれていると判断した...それのいくつかをコミットした後。だから私は次のシーケンスを試しました: git reset --hard git rebase origin git fetch git pull git checkout その時点で私はメッセージを受け取りました Your branch is ahead of 'origin/master' by 2 commits. ローカルディレクトリを消去してすべてを再ダウンロードすることなく、ローカルコミットを破棄したい。どうすればそれを達成できますか?
263 git  git-reset 

4
Git、オリジン/マスターをコミットにリセットする方法は?
次のコマンドでローカルマスターをコミットにリセットします。 git reset --hard e3f1e37 $ git statusコマンドを入力すると、ターミナルは次のように言います: # On branch master # Your branch is behind 'origin/master' by 7 commits, and can be fast-forwarded. # (use "git pull" to update your local branch) # nothing to commit, working directory clean origin / headerもリセットしたいので、origin / masterにチェックアウトします。 $ git checkout origin/master …

1
git reset --hard origin / masterの意味は何ですか?
私はやったgit pullし、エラーが発生しました: 次の作業ツリーファイルはマージによって上書きされます...マージする前に、それらを移動または削除してください。 これを解決するために、私は次のことを行いました: git fetch git reset --hard origin/master 今私がするときgit pull、それは最新のものすべてを言います。これらのコマンドを実行したときに正確に何が起こるか知りたいのですが。git fetchローカルリポジトリにマージせずに、リモートリポジトリから変更をフェッチすることはわかっています。 の意味はgit reset --hard origin/master何ですか?どのように機能しますか?

9
どのようにgit reset --hardサブディレクトリをリセットするのですか?
UPDATE²:Git 2.23(2019年8月)では、これを行う新しいコマンドgit restoreがあります。承認された回答を参照してください。 更新:これはGit 1.8.3の時点でより直感的に機能します。自分の答えを参照してください。 次の使用例を想像してみてください。Git作業ツリーの特定のサブディレクトリにあるすべての変更を取り除き、他のすべてのサブディレクトリはそのまま残したいとします。 できますgit checkout .がgit checkoutです。スパースチェックアウトによって除外されたディレクトリを追加します がありますがgit reset --hard、サブディレクトリに対しては実行できません。 > git reset --hard . fatal: Cannot do hard reset with paths. 繰り返しますが、なぜgitはパスでハード/ソフトリセットを実行できないのですか? を使用して現在の状態をリバースパッチすることはできますgit diff subdir | patch -p1 -Rが、これはかなり奇妙な方法です。 この操作に適切なGitコマンドは何ですか? 以下のスクリプトは問題を示しています。How to make filesコメントの下に適切なコマンドを挿入します。現在のコマンドはa/c/ac、スパースチェックアウトによって除外されるはずのファイルを復元します。私がいることを注意していない明示的に復元したいa/aとa/b、私は「知っている」aと、以下のすべてのものを復元したいです。編集:そして私はまたb、「知っている」、または他のどのディレクトリがと同じレベルにあるかを知りませんa。 #!/bin/sh rm -rf repo; git init repo; cd repo for f in …

5
「git add <dir>」を元に戻しますか?
コマンド「git add dir」を使用して誤ってファイルを追加しました。「git commit」はまだ実行していません。このディレクトリとそれに含まれるすべてのものをコミットから削除する方法はありますか? 私は試しましたgit reset dirが、うまくいきませんでした。どうやらgit reset fileそれを元に戻す方法です。しかし、私は非常に多くのファイルと非常に短い時間を持っています。
186 git  git-reset 

7
HEADを以前の場所に戻すにはどうすればよいですか?(切り離されたヘッド)&コミットを元に戻す
Gitではsquash commit、別のブランチにマージしてHEADから、次の方法で前の場所にリセットすることで、 git reset origin/master しかし、私はこれから抜け出す必要があります。HEADを前の場所に戻すにはどうすればよいですか? 23b6772移動する必要があるコミットのSHA-1フラグメント()があります。このコミットに戻すにはどうすればよいですか?

3
「git rm --cached x」対「git reset head-x」?
GitRef.org-基本: git rmステージング領域からエントリを削除します。これは、git reset HEADファイルの「ステージング解除」とは少し異なります。「アンステージ」とは、ステージング領域を、変更を加える前の状態に戻すことを意味します。 git rm一方、ファイルを完全にステージから外し、次のコミットスナップショットに含まれないようにすることで、ファイルを効果的に削除します。 デフォルトでは、a git rm fileはファイルをステージング領域から完全に削除し、ディスクからも削除します&gt;(作業ディレクトリ)。ファイルを作業ディレクトリに残すには、を使用できますgit rm --cached。 しかし、違いを正確に何であるgit rm --cached asdとはgit reset head -- asd?


11
ステージング領域のコミットされていないファイルでgit reset --hardを元に戻す
仕事を取り戻そうとしています。私は愚かでしたがgit reset --hard、その前に私はやっただけget add .でやっていませんgit commitでした。助けてください!これが私のログです: MacBookPro:api user$ git status # On branch master # Changes to be committed: # (use "git reset HEAD &lt;file&gt;..." to unstage) # modified: .gitignore ... MacBookPro:api user$ git reset --hard HEAD is now at ff546fa added new strucuture for api git reset --hardこの状況で元に戻すことはできますか?

4
Git: 'git reset'後にコミットメッセージを再利用/保持する方法は?
Gitユーザーが定期的にこの状況に遭遇するので、フィックスアップコミットに適合しない、--amendまたはrebase -iフィックスアップコミットを使用しない方法で、1つ以上のコミットをやり直す必要があります。通常、私は次のようなことをします git reset HEAD~1 # hack, fix, hack git commit -a # argh .. do I need to retype my message? 私は賢明な合成コミットメッセージを非常に真剣に受け止めています。通常、それらには、変更のための参照と理由を含むより大きなテキストが含まれています。これまでは、ソートされていないを介して古いコミットメッセージを回復するための長いプロセスにかなり悩まされていますgit reflog。git logコピーと貼り付けのプロセスをます。 これに取り組む方が良いですか?そして、もし私が複数のコミットで構成されているとしたらどうでしょうか? 編集:これについて少し考えた後、私が探しているのは、フィックスアップ/修正コミットが適切でないコミットメッセージのgit stashのような機能です。

3
私は自分のマスターブランチの「中間」コミットをポップアップしてゴミ箱に捨てる必要があります。どうすればできますか?
たとえば、次のマスターブランチでは、コミットaf5c7bf16e6f04321f966b4231371b21475bc4daだけを破棄する必要があります。これは、前のリベースによる2番目です。 commit 60b413512e616997c8b929012cf9ca56bf5c9113 Author: Luca G. Soave &lt;luca.soave@gmail.com&gt; Date: Tue Apr 12 23:50:15 2011 +0200 add generic config/initializers/omniauth.example.rb commit af5c7bf16e6f04321f966b4231371b21475bc4da Author: Luca G. Soave &lt;luca.soave@gmail.com&gt; Date: Fri Apr 22 00:15:50 2011 +0200 show github user info if logged commit e6523efada4d75084e81971c4dc2aec621d45530 Author: Luca G. Soave &lt;luca.soave@gmail.com&gt; Date: Fri Apr 22 17:20:48 …

3
誰かがリベースまたはリセットを公開されたブランチにプッシュした後、どのように回復/再同期しますか?
公開された作品をリベースしてはいけない、危険だなどと聞いたことはありますが、リベースが公開された場合の対処法のレシピは見たことがありません。 さて、これはリポジトリが既知の(そしてできれば小さな)人々のグループによってのみ複製される場合にのみ実際に実行可能であることに注意してください。リベースまたはリセットをプッシュする人は誰でも、次に注意を払う必要があることを他の人に通知できますフェッチ(!)。 私が見た明らかな解決策の1つは、ローカルコミットがなくfoo、リベースされた場合に機能します。 git fetch git checkout foo git reset --hard origin/foo これはfoo、リモートリポジトリに従って、その履歴を優先してローカル状態を破棄するだけです。 しかし、そのブランチで大幅なローカル変更を行った場合、どのように状況に対処するのでしょうか。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.