【问题标题】:how can i git clone git://foo.git AGAIN?我怎样才能 git clone git://foo.git AGAIN?
【发布时间】:2010-11-17 22:12:16
【问题描述】:

我做到了 git clone git://foo.git 光盘 ...编辑文件..

现在我想重新开始。我不在乎我已经做出的任何改变, 但我不想再次克隆整个巨大的 foo.git,只是丢​​失我所有的更改。 我怎样才能 git clone git://foo.git 第二次,没有得到 fatal: destination path 'foo' already exists and is not an empty directory. 什么是正确的命令?

【问题讨论】:

    标签: git clone


    【解决方案1】:

    要恢复所有更改,请使用:

    git checkout .
    

    但不会删除未跟踪的文件(树中最初不存在的文件,您创建但未编辑的文件)。要查找未跟踪的文件,请使用:

    git status
    

    然后手动删除它们。

    顺便说一句,如果您想制作 repo 的副本,则无需克隆原始 repo,只需克隆硬盘上已有的 repo。去foo外面的某个地方,然后做:

    git clone /path/to/foo
    

    【讨论】:

      【解决方案2】:
      git checkout . # revert your changes
      git clean -xdf # delete untracked and ignored files
      

      【讨论】:

      • 不错~!我不知道clean
      • 注意: git checkout 。如果您不在回购的顶部,显然将无法正常工作。 git reset --hard 可以通用。
      【解决方案3】:

      您可以使用“git checkout”。或“git checkout HEAD -- .”,甚至“git reset --hard HEAD”将您的工作区域重置为已知状态(在第一种情况下记录在索引中的状态,在第二种和第三种情况下记录在 HEAD 提交中的状态) .

      要删除不想保留的未跟踪文件,可以使用“git clean”(请参阅​​documentation for details)。

      要从您克隆的远程存储库中获取新更改,请使用“git fetch”(或等效的“git remote update”,经过一些设置)或“git pull”(获取 合并变化)。

      【讨论】:

        【解决方案4】:

        你也可以一直使用

        rm -rf *
        git checkout master
        

        要记住的命令更少:)

        【讨论】:

        • 如果 master 已经包含本地提交,那将不起作用,因为它们仍然存在。
        【解决方案5】:

        如果你真的搞砸了:

        git clean -df
        git reset --hard HEAD
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-05-13
          • 2020-11-27
          • 1970-01-01
          • 1970-01-01
          • 2011-12-21
          • 2011-07-27
          • 1970-01-01
          相关资源
          最近更新 更多