【问题标题】:Git:Help to retrieve local commit in PyCharm, WebStormGit:帮助在 PyCharm、WebStorm 中检索本地提交
【发布时间】:2016-09-15 18:42:25
【问题描述】:

我从master创建了一个名为1.3的分支,然后

  $ 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 生成为个人 ID 后。

这是我的 ~/.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 

【问题讨论】:

  • 这是git checkout 1.3 还是git checkout -b 1.3
  • 嗨,forevergenin:git checkout 1.3 同上
  • git checkout 1.3 不会创建新分支。它只会检查一个已经创建的分支。在您的情况下,看起来已经有一个名为 1.3 的分支并且它已被签出。如果你想从当前签出的分支创建一个新分支,你必须运行git checkout -b 1.3

标签: git pycharm webstorm git-branch git-commit


【解决方案1】:

如果您记得上次提交的提交消息,那么您可以轻松恢复它。如果您不记得上次提交的任何信息,那么它会变得有点困难但仍然可行。

运行命令git reflog。它将列出所有以前的 HEAD 提交。有点像撤消列表。从此列表中记下您上次提交的 git commit id。现在运行git checkout -b new_1.3 last-or-lost-commit-idnew_1.3 现在将丢失的提交作为其 HEAD。

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

【讨论】:

  • 感谢 forevergenin,只有 git push origin -u new_1.3 不起作用,在 PyCharm IDE VCS -> Git -> Push 中工作。 CLI 返回:服务器的主机密钥未缓存在注册表中。您无法保证服务器就是您认为的计算机。 ... 联系。将密钥存储在缓存中? (是/否)是的。但只是无限期地挂在那里......
  • 为什么提交丢失了?谢谢
  • 它没有丢失。如果我的理解是正确的,当您运行 git checkout 1.3 时,您刚刚将工作副本从 master 切换到 1.3
猜你喜欢
  • 2012-07-24
  • 1970-01-01
  • 2018-05-01
  • 2011-07-03
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
相关资源
最近更新 更多