Xcode 9.2 - 版本控制 - 如何恢复到早期提交的版本

时间:2018-02-03 21:23:45

标签: xcode git version-control

我使用Xcode 9.2和bitbucket进行版本控制。我在主分公司工作了4-5个小时。我现在意识到我想保留我今天所做的工作,但不是主分支的一部分,而是作为一个新的分支。

我已经能够将现有版本推送到新分支,但它要求我先提交(本地)。

现在我想将主服务器恢复为昨天的版本,并在主服务器上提交。这就是问题发生的地方。我可以通过checkout提交恢复到之前提交的版本 - 但是我不再在master分支上了,而且我不能提交master或push to master。

如何将主页恢复为以前的版本,并基本删除过去4-5小时内完成的更改?

1 个答案:

答案 0 :(得分:2)

下次你在提交之前意识到:

  1. 打开终端
  2. cd $ {您项目的路径}
  3. 运行git stash命令
  4. 当您存储未提交的更改时,现在应该可以安全地切换并创建新的分支
  5. 现在更改为新分支并应用存储:git stash apply
  6. 享受您的变化。
  7. 由于我很困惑,我不时会遇到这种情况,我在.bash_profile文件中创建了别名,只需在终端中输入一个命令即可删除本地提交:

    alias fixFuckup="git reset HEAD~1"
    

    只需运行命令,您将重置为提交前的状态。实际上这会重置一个提交。

    git reset HEAD~1
    

    要重置到执行大量提交之前的状态,请更喜欢使用它。

    git reset --hard HEAD^
    

    为了澄清这些变化,请进一步了解:

    what is difference between 'git reset --hard HEAD~1' and 'git reset --soft HEAD~1'?