web-dev-qa-db-ja.com

git SourceTreeのStop TrackingとDiscard Fileの違いは何ですか

ファイルを破棄することと、ソースツリーを使用してgitでファイルの追跡を停止することとの違いを知りたいと思いました。更新されたコードでファイルを削除し、そのファイルもリポジトリで削除したい場合は、追跡停止としてマークするか、コミットプロセス中に破棄する必要があります

31
MistyD

SourceTreeでは、ファイルで「破棄」を選択すると、ローカルの変更が破棄されます。追跡を停止すると、リポジトリから削除されます。ただし、ローカルドライブ上のファイルを削除し、SourceTreeの「Staged Files」セクションでその削除を確認できる限り、コミットするとリポジトリでも削除されます。

28
David Deutsch

最初の回答でカバーされていない詳細の1つは、トラッキングの停止はローカルファイルを削除しないことです。ソース管理からのみ削除します。

  1. ファイルをローカルに保持したい場合(ソース管理にあるべきではないと判断したVisual Studio設定を保存する.suoファイル)、リポジトリから削除する場合は、トラッキングの停止を使用する必要があります。この後、ステージングされていないファイルにリストされているファイルが表示されている場合は、右クリック>無視...を使用できますSourceTreeを使用して.gitignoreファイルを更新し、将来ファイルを無視します。
  2. ローカルとリポジトリの両方でファイルを削除する場合は、Removeを使用する必要があります。 (SourceTree用語を使用するには)
  3. 最後に、ローカルの変更のみを元に戻す場合は、
    リポジトリを変更するには、Discardを使用します。
55
Ken Lyon