我在这里阅读并搜索了很多,但没有找到答案,所以有没有办法在提交之间切换,就像你使用branches一样。让我说我有这些提交:a;b;c
其中{{1是我的最后一次提交,我可以切换回提交c
吗?或者您必须执行a
并手动修改文件?
答案 0 :(得分:12)
只需输入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
以自动创建和应用修补程序。
答案 1 :(得分:3)
您可以根据要使用的修订创建分支。可以使用
查看修订号 git log
从上一版本中删除分支
git branch -f branchname rev
答案 2 :(得分:1)
git使用commit的定义。 git将委托定义为:
提交肥胖型
表示提交或标记对象名称。采用commit-ish的命令 参数最终希望对提交对象进行操作,但是会自动进行 取消引用指向提交的标记对象。
这似乎有点不完整,因为分支通常也被视为commit-ish。
基本上,你可以签出任何有sha-1哈希的东西。