git SourceTree 中停止跟踪和丢弃文件有什么区别

What is the difference between Stop Tracking and Discard File in git SourceTree

我想知道在 git 中使用 source-tree 丢弃文件和停止跟踪文件之间的区别。如果我在更新的代码中删除了一个文件,并且我也想在存储库中删除该文件,我应该将其标记为停止跟踪还是应该在提交过程中丢弃它

在 SourceTree 中,在文件上选择 "discard" 只会丢弃您的本地更改;停止跟踪将其从存储库中删除。但是,只要您删除了本地驱动器上的文件,并且您可以在 SourceTree 的 "Staged Files" 部分看到该删除,那么当您提交时,它也会在存储库中删除。

第一个答案未涵盖的一个细节是 停止跟踪 不会删除本地文件。它只会将其从源代码管理中删除。

  1. 如果您想将文件保存在本地(可能是.suo 文件存储 Visual Studio 您认为不应包含在源代码中的设置 control) 但将其从存储库中删除,则应使用 Stop Tracking。此后,如果您看到 Unstaged files 中列出的文件,您可以使用 右键单击 > Ignore... 在 SourceTree 中更新您的 . gitignore 文件以在将来忽略该文件。
  2. 如果您想同时删除本地和存储库中的文件, 你应该使用 Remove。 (使用 SourceTree 术语)
  3. 最后,如果您只想还原本地更改而不想
    完全改变存储库,使用 Discard.