12

Githubでいくつかの一般的なワークフローを理解するのに助けが必要です。私はVSTFSのバックグラウンドを持っているので、ご容赦ください。

保留中の変更を元に戻す

gitリポジトリのクローンをローカルファイルシステムに作成したとしましょう。この時点で、プロジェクトのローカルファイルはリモートリポジトリにあるものと正確に一致します。

次に、コードにいくつかの変更を加え、いくつかのファイルのローカルバージョンを変更することにしました。いくつかのテストを行った後、ローカルの変更を破棄し、ローカルファイルをリモートリポジトリにあるものに戻したいことがわかりました。

これらのローカル変更を元に戻し、リポジトリ内の現在のバージョンに復元するにはどうすればよいですか?

すべての変更をコミットする

リポジトリクローン内のローカルファイルの内容を変更したり、新しいファイルを追加したりして、変更をプッシュしたい場合は常に、コメントとともに「git add。」、「git commit」を発行し、次に「gitpush」をマスターに発行します。

ただし、リポジトリで追跡されているファイルをローカルで削除すると、「gitadd」と表示されます。rmの変更をキャプチャしません。代わりに、リポジトリを更新するために「gitcommit」する前に「gitrm[filename]」を実行する必要があります。私はいつもこれをするのを忘れています。

「gitadd」を実行するgitコマンドはありますか。ワンステップでローカルに削除したファイルを「gitrm」しますか?ローカルファイルを変更していくつか削除した後、「gitcommit」する前にすべての変更をキャプチャするコマンドを1つだけ発行したいと思います。

4

2 に答える 2

24

これらのローカル変更を元に戻し、リポジトリ内の現在のバージョンに復元するにはどうすればよいですか?`

git reset --hard

(これにより、インデックスと作業ディレクトリがHEADにリセットされます)

ローカルで削除したファイルを1つのステップで実行するgitコマンドはありgit add .ますgit rmか? `

git add -u

(新しいファイルは追加されません)

新しいファイルを追加したい場合は、rm'edファイルを削除し、ファイルに変更を加えます。

git add -A
于 2011-10-14T16:09:00.313 に答える
3

次のコマンドを発行することで、最後の有効なコミット(つまり、ツアーの例ではリモートリポジトリのコピー)に戻すことができます。

git reset --hard HEAD

さらに、便利なhttp://progit.org/2011/07/11/reset.htmlページを読んで、リセットがどのように機能し、インデックスが何であるか、およびgitaddとgitrmが別々のコマンドである理由をよりよく理解することをお勧めします。

于 2011-10-14T16:07:43.947 に答える