2016-09-15 41 views
0

我做了一个叫1.3从主分支,然后混帐:帮助检索当地的PyCharm承诺,WebStorm

$ git checkout 1.3 
    $ git branch --set-upstream-to=origin/1.3 
    $ git push -u origin/1.3 

编辑:我做了,如果说有什么区别的上述3个步骤之前git push -u origin master

但不知何故,我失去了最后一次本地提交,这意味着我甚至无法推送到Bitbucket?

如何检索最后一次提交?为什么它沿着痕迹丢失或消失?

生成ssh-key作为personalid后。

这是我的〜/ .ssh/config中

Host bitbucket.org 
    IdentityFile ~/.ssh/id_rsa 

#Default GitHub user 
Host github.com 
    HostName github.com 
    PreferredAuthentications publickey 
    IdentityFile ~/.ssh/b 


# Work user account 
Host bitbucket.org 
    HostName bitbucket.org 
    PreferredAuthentications publickey 
    IdentityFile ~/.ssh/workid 

Host bitbucket.org 
    HostName bitbucket.org 
    PreferredAuthentications publickey 
    IdentityFile ~/.ssh/personalid 
+0

这是'git checkout 1.3'或'git checkout -b 1.3'吗? – forevergenin

+0

嗨forevergenin:git checkout 1.3同上 – niceseb

+0

'git checkout 1.3'不会创建一个新的分支。它只会检出一个已经创建的分支。在你的情况下,它看起来像已经有一个名为'1.3'的分支,它已经检出。如果你想从当前签出的分支创建一个新的分支,你必须运行'git checkout -b 1.3'。 – forevergenin

回答

1

如果你还记得在提交信息上次提交,那么你可以很容易地恢复它。如果你不记得上次提交的任何信息,那么它会变得有点困难,但仍然可行。运行命令git reflog。它会列出所有以前的提交。有点像撤消清单。从此列表中记下您上次提交的git commit id。现在运行git checkout -b new_1.3 last-or-lost-commit-idnew_1.3现在将丢失的提交作为它的HEAD。

如果您想将这个新分支推送到远程,然后运行git push origin -u new_1.3

+0

感谢forevergenin,只有git push origin -u new_1.3没有工作,在PyCharm IDE VCS中工作 - > Git - > Push。 CLI返回:服务器的主机密钥未缓存在注册表中。您 不能保证服务器是您认为它的计算机。 ... 连接。 将密钥存储在缓存中? (y/n)y。但只是无限期地挂在那里...... – niceseb

+0

为什么它首先失去了承诺?谢谢 – niceseb

+0

它没有丢失。如果我的理解是正确的,那么当您运行'git checkout 1.3'时,您只需将工作副本从'master'切换到'1.3'。 – forevergenin