如何将Git存储库重置为新克隆的状态?

bye*_*ary 4 git git-reset

是否有一个git语句的结果与新的git克隆的结果相同?

因此,即使有多余的分支,多余的文件,其他文件,本地标签等等……哪个命令可以完成此操作?

Mad*_*ist 5

删除所有本地工件的最佳选择是进行新克隆

否则,您必须运行不同的命令来执行清理的各个组件。

要清除所有未跟踪的文件,请使用git clean,同时打开任意数量的标志以清除所有内容:

git clean -fd
Run Code Online (Sandbox Code Playgroud)

现在,将您的所有分支都git reset保留到远程版本(),如果它们是仅限本地的(git branch),则将其删除:

git checkout master
git reset --hard origin/master

git branch -d local-branch
Run Code Online (Sandbox Code Playgroud)

标签也是如此。您可以像这样删除所有本地标签:

git tag -d $(git tag -l)
Run Code Online (Sandbox Code Playgroud)

.git如果您知道自己在做什么,也可以通过操作文件夹的内容来手动执行很多这样的操作。

如您所见,git clone到目前为止,这是更简单的选择。

  • @Dan 这些是例子,不是假设。假设 OP 将在理解的情况下使用此代码,而不是字面意思。我假设他们(以及未来的读者)仔细阅读以理解“origin”是“<name-of-my-upstream>”的示例,而“master”是“<name-of”的示例替代品-我的分支>`。不过,我很感谢你说得很清楚。 (2认同)

A.H*_*.H. 5

如果你真的想删除所有本地工作,我也认为克隆是最简单的事情。如果存储库很大和/或网络很慢,那么您可以使用以下选项:

git clone --reference existing-clone --dissociate URL new-clone
Run Code Online (Sandbox Code Playgroud)