我正在一个分支(“cleanup”)中工作,我是在第一次“rebase”经历后意外删除了所有这些提交后创建的(使用“checkout -b cleanup ...”在“reflog”中找到的SHA1)。重点是,我不确定该分支的父级是什么(如果这很重要的话)。
我只是想做我已经多次阅读过的事情:我想稍微修改一些已提交的代码,但这不是最近的提交。无论这是否适用于“压缩”应用程序,或者仅在到达该点时进行修补,我都不知道。
在运行上述rebase命令后,当编辑器启动时,我还在STDOUT上看到了这个:
$ git rebase -i HEAD~7
usage: git rev-list [OPTION] <commit-id>... [ -- paths... ]
limiting output:
--max-count=<n>
...
除了使用
HEAD〜7
引用之外,我尝试过指定完整的SHA1和不同的refspecs到本地和远程分支。对于所有内容都得到相同的结果... 我错过了什么吗?感谢您的帮助!$ git log --oneline HEAD~7..HEAD
d0fd20e temp Fix resume_cities table
ea2ffdf Fix db/seeds.rb to reflect recent database structure modifications
dbd2b8b Add several models/scaffolds that go along with the Geonames tables
9759091 Fix name of the ResumeSkill model file.
3fc3134 Added the SHA1 for the previous commit to the comments on the migration, to help link back to that.
bacbeb2 Consolidate database migrations! READ ME!
0c49a57 Moved back to gem versions of linkedin, omniauth, and twitter
我想修改的是提交记录 bacbeb2
,使用 d0fd20e
进行修改。
根据 @MarkLongair 的建议,我在 /usr/lib/git-core/git-rebase--interactive
中添加了 set -x
,并看到了以下奇怪的输出:
$ git rebase -i HEAD~7
[... output muted for brevity, see the full output, here: http://gist.github.com/1163118]
+ read -r shortsha1 rest
+ sed -n s/^>//p
+ git rev-list --no-merges --cherry-pick --pretty=oneline --abbrev-commit --abbrev=7 --reverse --left-right --topo-order 2c51946812a198ca908ebcad2308e4b8274624b3...d0e9ff6d9c1f8bc374856ca2a84ad52d6013b5bf
usage: git rev-list [OPTION] <commit-id>... [ -- paths... ]
limiting output:
--max-count=<n>
--max-age=<epoch>
--min-age=<epoch>
--sparse
--no-merges
--remove-empty
--all
--branches
--tags
--remotes
--stdin
--quiet
ordering output:
--topo-order
--date-order
--reverse
formatting output:
--parents
--children
--objects | --objects-edge
--unpacked
--header | --pretty
--abbrev=<n> | --no-abbrev
--abbrev-commit
--left-right
special purpose:
--bisect
--bisect-vars
--bisect-all
+ test t =
+ test -s /home/ryan/Projects/social-jobs/.git/rebase-merge/git-rebase-todo
+ echo noop
[...]
我说“奇怪的输出”,因为如果我直接从命令行运行
rev-list
命令,它就会按预期工作。$ git rev-list --no-merges --cherry-pick --pretty=oneline --abbrev-commit --abbrev=7 --reverse --left-right --topo-order 2c51946812a198ca908ebcad2308e4b8274624b3...d0e9ff6d9c1f8bc374856ca2a84ad52d6013b5bf
>0c49a57 Moved back to gem versions of linkedin, omniauth, and twitter
>bacbeb2 Consolidate database migrations! READ ME!
>3fc3134 Added the SHA1 for the previous commit to the comments on the migration, to help link back to that.
>9759091 Fix name of the ResumeSkill model file.
>dbd2b8b Add several models/scaffolds that go along with the Geonames tables
>ea2ffdf Fix db/seeds.rb to reflect recent database structure modifications
>d0e9ff6 !temp Fix resume_cities table !temp
git log HEAD~7..HEAD
的输出是什么?(后一个命令用于生成要考虑进行变基的提交列表 - 你看到的行为可能是因为该列表由于某种原因为空 - 可能是一个错误或者关于你的代码库的某些非常奇怪的事情。) - Mark Longairgit log HEAD~7..HEAD
的输出。Git似乎能够很好地组装那个列表。在这里,我完全被卡住了。要克隆我的存储库重新开始还是不需要这种类型的解决方案? - Ryan Long