【问题标题】:Git commit followed by checkoutGit 提交后签出
【发布时间】:2017-12-19 15:05:04
【问题描述】:

我刚开始使用 git,所以这听起来像是一个愚蠢的问题,对此感到抱歉。

我在 python 中开发并在 windows 7 上使用 Pycharm。我正在使用 pycharm 接口来执行 git 命令。

在某个分支上工作后,我提交了我的更改(但没有推送它们)。之后,我检查了 master,然后再次检查了同一个分支。但这和我承诺的时候不一样。我可以回到我提交的版本吗?

再一次,请记住,我是初学者。

【问题讨论】:

  • 您所描述的内容听起来不对。你能指定你在上述过程中使用的命令吗?
  • 在签出 master 之前,你怎么知道分支和分支不同?有什么区别?您希望看到什么?
  • 我正在使用pycharm社区添加2016.1.3。在右侧屏幕的底部有一个界面,可让您结帐分支。我检查了 master,然后是我之前提交的同一个分支。现在我有一些丢失的文件。
  • 也许我应该再次指出,我只是在本地提交了我的更改,我没有推送它们。
  • git reflog 应该可以告诉你你去过哪里

标签: git version-control pycharm


【解决方案1】:

这是不可能的。有一些情况可能会导致你在 checkout 后找不到提交,例如你正在使用分离的 HEAD 或者你正在使用另一个分支。

要弄清楚,你可以使用命令git reflog从上到下查找最新消息:

checkout: moving from *** to master at HEAD@{n}
  • 如果*** 显示的分支名称如下:

    5cc0787 HEAD@{1}: checkout: moving from dev to master

    这意味着在您结帐到master 分支之前,您已在dev 分支上提交了更改。

  • 如果 *** 显示提交 id(sha-1 值),例如:

    5cc0787 HEAD@{1}: checkout: moving from b503fa537bac459862752641facbd5b50783d7b5 to master

    这意味着您正在制作一个独立的 HEAD 雕像。而如果提交的更改还想用于分支(如stage),可以从分离的HEAD(git checkout -b temp b503f)创建一个新的分支(temp),然后合并新创建的分支@ 987654332@ 转换为 stagegit checkout stagegit merge temp)。

【讨论】:

    猜你喜欢
    • 2018-09-20
    • 2013-12-30
    • 2019-12-22
    • 2019-11-09
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    相关资源
    最近更新 更多