我试图学习如何使用Git进行本地版本控制。我使用Xcode作为我的IDE。当我发现有3000个未分级的更改时,我尝试添加我的最新更改。我在不知不觉中上演了他们。然后我去了我的项目根目录,用相同的文件找到里面的同一个目录,依此类推。我删除了它,并且由于缺少了暂存文件,存储库进入了损坏状态。我实际应该做什么,这怎么可能发生?
答案 0 :(得分: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
。备份上游下的克隆应该被认为是任何远程上游存储库,例如来自github,它实际上是从本地文件系统访问的并不重要。请注意,如果您创建新分支,则需要单独推送它们,请参阅:How to copy a local Git branch to a remote repo