我试图学习如何使用 Git 进行本地版本控制。我使用 Xcode 作为我的 IDE。当我发现有 3000 个未暂存的更改时,我尝试添加我的最新更改。我在不知不觉中上演了他们。然后我去了我的项目根目录,在里面找到相同的目录,里面有相同的文件等等。我删除了它,并且由于暂存文件丢失,存储库进入了损坏状态。我实际上应该做什么,这怎么可能发生?
问问题
131 次
1 回答
3
如果您删除了该.git
文件夹,则您删除了实际的本地存储库克隆。挽救你的资源(希望你在某个地方有一个好的版本)并从头开始用它们初始化一个新的存储库。
如果您想创建一个备份存储库,当您已经有一个可以工作的存储库时,这可能是最简单的方法,在确保没有要保留的未提交更改(bash 命令,但即使您不要使用 bash,我敢肯定):
cd work/myproject
cd ../..
mkdir backup-upstream
cd backup-upstream
git clone --no-checkout ../work/myproject
然后,您将不再需要直接触摸该备份。现在你可以设置你当前的工作/项目来遵循它,但是只做一个新的克隆是最简单且最不容易出错的,从上面继续:
cd ../work
mv myproject myproject-backup
git clone ../backup-upstream/myproject
cd myproject
现在检查这些文件的差异,看看实际发生了什么变化可能会很有启发性:
cat .git/config
cat ../myproject-backup/.git/config
然后你work/myproject
照常工作,当你想创建备份时,只需git push
. backup-upstream 下的克隆应该被认为是任何远程上游 repo,例如来自 github,它实际上是从本地文件系统访问并不重要。请注意,如果您创建新分支,则需要单独推送它们,请参阅:如何将本地 Git 分支复制到远程仓库
于 2013-02-28T06:01:19.677 回答