0

好的,这就是场景。

我犯了一个非常糟糕的新手错误。我正在编写一些代码,并没有创建一个开发分支来检查和测试开发。所以我已经对我机器上的 master 分支进行了所有这些更改,这些更改仍然损坏(正在开发中),我的老板希望我对生产中的应用程序进行一些更改。

我对如何做到这一点的想法是:

  1. 重命名我的项目目录,这样我就有了它的备份
  2. git clone 最后一个远程版本到我的机器上
  3. 进行他想要的细微更改并重新部署/提交
  4. 整理出我在旧版本的应用程序中所做的更改,并将其放入新克隆的 master 分支的 dev 分支中。

对此有什么想法吗?我现在真的不想搞砸生产,我做了太多的更改来跟踪以恢复到代码稳定的地方。

4

2 回答 2

1

无需经历那么多麻烦:

git checkout master              # get the 'bad' version
git branch bad-master            # make a new branch called 'bad-master', cut off master's current state
git fetch                        # make sure you're up to date with the remote
git reset --hard origin/master   # reset your master branch to origin/master's state
<work work work>
git checkout bad-master          # when you're ready to work on bad-master again

请注意,这git reset --hard origin/master将丢弃您尚未签入的工作树中的任何工作......因此,如果您有尚未提交的工作,请务必这样git stash做。

于 2013-04-16T17:10:18.107 回答
0

这是一种完全正常的情况,您可以轻松恢复。

您需要做的就是:

  1. 创建一个指向当前版本的 master的新分支

    git checkout -b my-feature-branch
    
  2. 将你的主人重置为与原点/主人相同的东西

    git checkout master
    git reset --hard origin/master
    

就是这样。现在您的 master 与您进行功能开发之前的状态相同,并且您有一个功能分支留出,您可以稍后签出以恢复开发。

于 2013-04-16T17:10:05.777 回答