【发布时间】:2012-01-07 19:19:26
【问题描述】:
我在这里阅读并搜索了很多但没有找到答案,所以有没有一种方法可以像使用分支一样在提交之间切换。假设我有这些提交:a;b;c 其中c 是我的最后一次提交,我可以切换回提交a吗?或者你必须做一个git diff 并手动修改文件?
【问题讨论】:
-
一个分支是一个提交(具有符号名称,但仍然是一个提交)
标签: git version-control
我在这里阅读并搜索了很多但没有找到答案,所以有没有一种方法可以像使用分支一样在提交之间切换。假设我有这些提交:a;b;c 其中c 是我的最后一次提交,我可以切换回提交a吗?或者你必须做一个git diff 并手动修改文件?
【问题讨论】:
标签: git version-control
只需输入git checkout a。或者更有用的是git checkout -b mybranch a,将a 签出为新分支mybranch。
如果您想恢复b 和c,可以使用git revert,或者将它们从当前分支的历史记录中完全删除,您可以git rebase -i a 将它们丢弃。
即使您打算使用git diff,您也无需手动执行任何操作。查看 git format-patch、git apply 和 git am 以自动创建和应用补丁。
【讨论】:
git revert b(which stand for the commit ID)?
git reset --hard。
您可以从要使用的修订版本创建一个分支。可以使用查看修订号
git log
从上一个版本中分出
git branch -f branchname rev
【讨论】:
git 使用 commitish 的定义。 git 将 commitish 定义为:
提交式
表示提交或标记对象名称。一个接受 commit-ish 的命令 参数最终想要对提交对象进行操作但自动 取消引用指向提交的标记对象。
这似乎有点不完整,因为分支也经常被视为提交。
基本上,您可以检查任何具有 sha-1 哈希值的内容。
【讨论】: