LinuxシステムGit

  
で操作を元に戻す方法

すべてのオペレーティングシステムに元に戻す操作があると言えますが、Linuxシステムも例外ではありません。そしてLinux Gitでは、間違った操作の大部分を元に戻すことができます。見てみましょう。

新しいコミットをすると、Gitはその時点でのコードベースのスナップショットを保存します;その後、Gitを使用してプロジェクトの以前のバージョンに戻ることができます。

このブログ記事では、行った変更を「元に戻す」必要がある一般的なシナリオと、Gitでこれを実行するための最良の方法について説明します。

元に戻すA'公表'

のシナリオを変更する:あなたはGitHubのに変更を送って、Gitのプッシュを行ってきた、そして今はコミットこれらのどの実現1つは問題があり、そのコミットを元に戻す必要があります。

方法:git revert SHA

原則:git revertは指定されたSHAに対応する新しいコミットを生成します。それは反対(または逆)です。元のコミットが「実質」である場合、新しいコミットは「反物質」で、元のコミットから削除されたコンテンツは新しいコミットに追加され、元のコミットに追加されたコンテンツは元のコミットに追加されます。新しいコミットで削除されます。

これはGitの最も安全で基本的な元に戻すシナリオです。履歴は変更されないため、誤って送信したコミットを相殺するために新しい "リバース"コミットをgit pushできるようになりました。

最後のコミットメッセージの修正

シナリオ:最後のコミットメッセージにタイプミスがあり、git commit -m'を実行しましたが、git pushの前に#42'あなたはメッセージが "Fixes bug#42″"であるべきだと気づいた。

方法:git commit --amendまたはgit commit --amend -m'バグ修正#42'

原理:git commit --amendは更新され、新しいコミットに置き換えられます。最近のコミットでは、この新しいコミットは前のコミットの内容と変更を結合します。変更が現在行われていない場合、この操作は最後のコミットメッセージのみを書き換えます。

元に戻す'ローカル'変更

シナリオ:猫がキーボードを通り過ぎて、誤って変更を保存してからエディターを破棄した。しかし、あなたはこれらの変更をコミットしていません。最後のコミットと同じように、変更したファイルの内容をすべて復元します。

方法:git checkout - "bad filename"

原則:git checkoutは作業ディレクトリのファイルをGit以前に記録された状態に変更します。あなたが返却したいブランチ名または特定のSHAを提供することができます、あるいはデフォルトで、Gitはあなたが現在のチェックアウトブランチの最後のコミットであるHEADにしたいと思うでしょう。

覚えておいてください。このように「元に戻す」を行った変更は、実際には消えます。それらが提出されたことがないので、Gitは後でそれらを回復するのを助けられません。あなたはあなたがこの操作であなたが捨てるものを理解することを確実にしなければなりません! (多分あなたは最初にgit diffで確認することができます)

リセット'ローカル'変更

シナリオ:あなたは何かをローカルで送信しました(まだプッシュされていません)が、これはとても悪いことです、以前の3つのコミットを元に戻したいのです。

方法:git reset "last good SHA"またはgit reset --hard "last good SHA"

原則:git resetはコードベースの履歴を指定されたSHA状態に戻します。それは、これらの投稿が起こったことがないようなものです。デフォルトでは、git resetは作業ディレクトリを保存します。このようにして、提出はなくなりますが、修正はまだディスク上にあります。これは安全な選択ですが、通常はコンテンツを「削除」して確定します - これは--hardオプションの機能です。

「ローカル変更」を元に戻した後で再開

シナリオ:いくつかのコミットを送信し、次にgit reset - これらの変更を元に戻すのは難しいです(前の段落を参照)あなたは、あなたがこれらの変更を元に戻したいことに気付きます!

方法:git reflogとgit resetまたはgit checkout

原則:git reflogはプロジェクト履歴を復元するための優れたリソースです。 reflogを使用すると、コミットしたものはほとんど何でも回復できます。

すでにgit logコマンドに慣れているかもしれません。これはコミットのリストを表示します。 git reflogも似ていますが、HEADが変更された時刻のリストを表示します。前のページ1234次のページ合計4ページ

Copyright © Windowsの知識 All Rights Reserved