7

Git は--force多くの操作でフラグを持っていますが、それらを使用すると少し違和感があります。私のコードで警告メッセージを無視するように。

たとえば、ファイルのステージングを解除したいだけで、次のようにしました。

git rm --cached myfile.ext

gitはエラーを訴えました:

次のファイルには、ファイルと HEAD の両方とは異なるコンテンツがステージングされています

私は本当にこのエラーを気にしませんし、問題ではないようです.コードをそのままにして、ファイルのステージングを解除したいだけです. --forceflag は単にこの問題を解決しました。

この問題に関する情報を見つけることができなかったので、私の質問はベスト プラクティスに関するものです。git コマンドで強制フラグを使用する必要がありますか、それとも悪い習慣ですか?

アップデート

私はこの私の質問を見つけ、興味のある人にとって役立つという洞察を得ました。

forceフラグはyes/no、git(または同様のソフトウェア)のダイアログのようなものです。何かを失敗または損傷する可能性のあることを行うときのように、通常、yes/noダイアログが表示されます。したがって、フラグの使用は単なる通常のルーチンであるという私の質問に答えるのとgit同じyesです。--forceforce

4

2 に答える 2

6

--forceチャンスをつかんでうまくいかない可能性があることを試みることを意味するのではなく、競合の可能性を認識して行動を強制することを意味します。--forceしたがって、使用することは悪い習慣ではないことに同意します。

多くの場合、まさにそれが必要です。愚かなことをするのを防ぐために、git コマンドが行っているチェックを上書きします。警告に注意し、コマンドが成功することがわかっている場合は、 を使用しても何も悪いことはありませんforceドキュメント(またはコマンド ラインの git のヘルプ ページ) を参照して、各コマンドで何が上書きされるかを確認してください。

もう 1 つのユース ケースは、ユーザー インタラクションを処理したくない、または処理できないスクリプトからコマンドを実行するときに、確認プロンプトを回避することです。

于 2013-09-30T09:32:40.973 に答える
3

まず、ステージングを解除するには、git reset -- file.

第二に、使用すること--forceは悪い習慣ではありません。
一般的な例の 1 つは、無視されたファイルの一部であるファイルをソース管理に追加する場合です (で宣言されています.gitignore) 。

git add --force -- aFile

git addこれらの同じコマンド ( など) の一部には、「プレビュー」または「ドライラン」モード (-nオプション)があることを忘れないでください。もう 1 つの良い方法は、その-nオプションを指定してコマンドをテストすることです。

于 2013-09-30T09:22:07.427 に答える