0

从字面上看,几天前刚开始使用 git。没有必要使用它,因为我没有在团队中工作。现在,我可以看到它有多好,但我不小心做了一个巨大的嘘声。

我在本地创建了一个巨大的项目,初始化了一个存储库并将所有内容添加到该存储库中,git add .然后尝试将其推送到我有权访问的 Bitbucket 上的私有存储库,但它不接受我的登录。所以我只是在摆弄,我在 Bitbucket 上创建了一个分支。

创建一个新分支并开始在本地工作!它愉快地说,所以,我不假思索地跑了

 git fetch && git checkout branch1

在我的终端中,没有意识到我在我昨天整天工作的目录中。在没有任何警告的情况下,git 继续用我刚刚创建的分支覆盖我目录中的所有内容,该分支当然包含来自 master 分支的一周前的代码。

我觉得恶心。我认为这完全摧毁了一周的工作。这里是初学者,对吧?你会放下摇摆手指一秒钟吗?是的,我应该更多地推动。

但请记住,我在本地创建了项目,初始化了一个存储库并将所有内容添加到该存储库git add .

那么这是否意味着我可以回滚到该本地存储库?

我试过跑步

git checkout .

但 git 说它不是存储库。坦率地说,看起来游戏结束了。但是,如果它只是从 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
$ 
4

1 回答 1

3

git fetch不会更改您的本地分支,并且git checkout根本不允许您覆盖未提交的更改。我个人怀疑您是否造成了任何重大损害(实际上很难丢失更改)

尝试执行git checkout <branch>where branch 是您提交代码的分支。如果您不知道您使用的是哪个分支,您可以git branch获取一个分支列表,然后依次获取git checkout每个分支。每次之后,git checkout您都应该检查是否找到了您的代码。

于 2013-10-24T14:01:42.037 回答