Git保存并恢复

时间:2012-05-06 01:36:50

标签: git

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

(我实际上没有尝试任何东西,只是寻找一些手持 - 这是漫长的一天,我不想搞砸了......)

3 个答案:

答案 0 :(得分: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

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


您可以快速执行git stash,这将保存您的工作,您可以稍后重新申请:

git stash

当您想要获得这些更改时,您可以执行git stash apply,这将应用您隐藏的最后更改(但将信息保存在存储列表中)。

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

你可以做更多的存储,因为你可以做多个存储并选择性地应用它们。

如果您希望更深入地了解存储问题,请在此处进行更详细的说明:http://gitready.com/beginner/2009/01/10/stashing-your-changes.html

答案 1 :(得分:2)

将git repo重置为某个提交:

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

保存当前版本,只需将其提交到repo,然后再重置为旧版本

答案 2 :(得分:1)

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

git log -1

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

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

返回您的分行并查看您的工作代码:

git checkout featureX
git checkout abc1234

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