在git中回退到特定的提交,构建,然后回退到最新的更改。

8
有些人有关于在Git中回滚到以前提交的问题,但我想确认一下。这个SO页面是最有帮助的: 如何将Git存储库恢复到以前的提交状态? 我有一个先前的提交,比如说1.0给客户,它已经完成了。我提交(不确定是否推送),然后创建一个新的分支来处理下一个版本。现在,由于某种原因,1.0的二进制文件“损坏”了,我需要回退,但也要保留当前的修改。
git日志显示如下:
commit be01d2a99ec35bbfcdbca47d5570acef8c69b275
Author: Yko <xxxxxxxxx@gmail.com>
Date:   Mon Apr 25 10:25:35 2011 -0400

所以,我需要采取的步骤是这样的吗?
1. git add .
2. git commit "good stopping point for v1.1"
3. git checkout be01...

我假设第三步修改了所有源代码?这是一个XCode项目(iPhone应用程序),因此我只需要重新加载项目文件、构建并获得新的二进制.app文件?
然后,回到最新版本1.1。
git checkout "latest commit #"?

谢谢,

我是新手,不想丢失任何工作。感谢帮助!!!

编辑:根据一些答案,我想澄清以下几点。 1. 我不想合并任何分支。我想回到版本1.0,重新构建源代码以创建一个新的二进制文件,然后再返回到我原来的位置。假设版本1.0的苹果价格为$1.00,版本1.10的苹果价格为$1.10。我想回到版本1.0,重建苹果价格为$1.00的源代码,将二进制文件交给客户x。然后,再回到版本1.10,继续工作。

再次感谢!!!


如何“回到之前但保留当前的修改”?这与仅使用1.1版本有何不同? - eykanal
版本1.1有新的东西。我想回到1.0构建二进制文件,然后再改回1.1。好的,我来举个例子。假设1.0中苹果的价格是1美元,而1.1中是1.10美元。1.1版本还没有准备好发布,但1.0版本的二进制文件已经损坏了... - oky_sabeni
当你在你的代码库中执行 'git branch' 命令时会输出什么内容? - Garrett Hyde
当你想回到1.1版本的代码时,只需执行 'git checkout <分支名称>' 即可。 - Garrett Hyde
如果你是Git的新手,这个教程将会帮助你更好地理解Git的工作原理。http://www.eecs.harvard.edu/~cduan/technical/git/ - Garrett Hyde
2个回答

4
你可以像这样做:
git tag 1.0
git add .
git commit -m "good stopping point for v1.1"
git tag 1.1
git checkout 1.0
.. do your build stuff/whatever
git checkout 1.1

如果您的存储库中没有标签,您可以使用分支名称代替。 - Garrett Hyde

0

你的步骤很好,这样做不会丢失任何工作。如果你没有到一个好的停止点,你可能想要查看git stash命令,以避免第二步。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接