2013-10-24 228 views
0

几天前刚开始使用git,字面意思。没有必要使用它,因为我没有在一个团队工作。现在,我可以看到它有多好,但我不小心做了一个巨大的booboo。在本地回滚git存储库

我创建了一个庞大的项目在当地,初始化存储库,并添加一切到库git add .然后我试着把这在到位桶的私人仓库我公司已获得,但它不会接受我的登录。所以我只是在摆弄,我在Bitbucket上创建了一个分支。

创建一个新的分支并开始在本地工作!它说,兴高采烈,所以,没有思想,我在终端运行

git fetch && git checkout branch1 

,没有意识到我在我一直工作在昨天一整天的目录。没有警告的提示,git继续用我刚刚创建的分支覆盖我目录中的所有内容,当然分支包含来自主分支的一周的代码。

我感觉不舒服。我认为这完全是一个星期的工作。初学者在这里,正确吗?你会摆动手指摇一秒钟吗?是的,我应该增加更多。

但是请记住,我创建的项目在当地,初始化存储库,并与git add .

添加一切到库那么这是不是意味着我可以回滚到本地仓库?

我试着运行

git checkout . 

但混帐说,这是不是一个仓库。坦率地说,游戏结束了。但是如果它刚刚来自Bitbucket的拉取,那么它又不是一个存储库?

下面是一些输出

$ git status 
# On branch ruby 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# db/ 
# log/ 
# tmp/ 
nothing added to commit but untracked files present (use "git add" to track) 
$ git checkout master 
Switched to branch 'master' 
$ git status 
# On branch master 
nothing to commit, working directory clean 
$ 
+2

如果你做git身份,你会得到什么?添加后你做了一个git commit吗? – wdh

+0

我是初学者,但好像我已经完全擦除了本地文件。 Bitbucket回购很好,虽然它已经一周了。 – Starkers

+0

Git不会覆盖你没有提交/存储/丢弃的更改 –

回答

3

git fetch不会改变你的本地分支机构和git checkout根本不会让你覆盖的未提交更改。我个人怀疑你已经造成了任何重大损失(实际上很难发生变化)

尝试做git checkout <branch>其中分支是您提交代码的分支。如果你不知道你使用了哪个分支,你可以做git branch以获得分支列表,然后依次选择git checkout每个分支。在每个git checkout之后,你应该检查你是否找到你的代码。

+1

谢谢你,这一切都回来了。谢谢你们。上帝......太可怕了。 Thankyou虽然 – Starkers

+0

:)很高兴我能帮忙。使用git的规则是,它永远不会触及未跟踪的文件(除非使用git add开始跟踪它们),并且它不允许您在未使用git commit或git pull显式提交新提交的情况下更改已提交文件的状态。所以很难真正失去你所做的任何改变。 – wdh

+0

一般来说,你将不得不做一些非常非常的事情,以便在使用git时失去你的东西。只要有东西被提交,它就相当防弹。 (我使用git时唯一遗失的东西是一些没有记录的文件,当我做了一些我并不真正理解的东西时。) – Tobb