0

我刚刚破坏了我的代码库。我想回滚到我的最后一次提交,但我想先保存损坏的版本,以便以后分析。在这种情况下最好的课程是什么?

(我实际上并没有尝试过任何东西,只是想找点手——这是漫长的一天,我不想把这件事搞砸..)

4

3 回答 3

5

您可以做几件事:

最有可能你要做的最好的事情是创建一个单独的分支来提交这个损坏的代码,然后提交到那个分支。

git checkout -b my-broken-branch # creates a new branch called my-broken-branch
# commit as usual...
git checkout - # return to the last branch you were on

当您想返回该代码时,请执行 agit checkout my-broken-branch切换到该分支。


您可以做的一件快速的事情是git stash,这将保存您的工作,您可以稍后重新应用它:

git stash

当您想要取回这些更改时,您可以执行一个git stash apply将应用您隐藏的最后更改(但将信息保留在隐藏列表中)的操作。

正如 Andrew 在评论中提到的那样,您也可以这样做git stash pop,这将应用最少的隐藏更改,并将其从隐藏列表中删除。

存储可以做更多事情,因为您可以执行多个存储并有选择地应用它们。

当您想更深入地了解存储时,这里有一个更详细的解释:http: //gitready.com/beginner/2009/01/10/stashing-your-changes.html

于 2012-05-06T01:42:05.493 回答
2

将 git repo 重置为 certian 提交:

git reset --hard <tag/branch/commit id>

要保存当前版本,只需在重置回旧版本之前将其提交到 repo

于 2012-05-06T01:42:52.797 回答
1

您可以使用此损坏的代码进行提交或新分支。之后,检查您的工作代码。

git log -1

记下提交名称(sha 代码 - 可以是前 7 个字符)。为损坏的代码创建一个新分支

git checkout -b broken
git add -A
git commit -m "Broken code"

返回您的分支并检查您的工作代码:

git checkout featureX
git checkout abc1234

另一种方法是存储您的更改并检查您的代码。之后,您可以存储弹出文件以使用它们。

于 2012-05-06T01:42:38.223 回答