【问题标题】:Using git rebase --interactive on a repo cloned from subversion在从 subversion 克隆的 repo 上使用 git rebase --interactive
【发布时间】:2014-04-18 16:20:36
【问题描述】:

我有几个从 SVN 转换而来的存储库。每次我尝试运行git rebase -i master 时,消息默认为noop。保存时,我收到Successfully rebased and updated refs/heads/master,这似乎表明它已经做了一些事情,但所有提交仍然存在。

我确实找到了this question,但该解决方案似乎不适用于 OsX。

我还在一个有 3 次提交的项目上尝试了 git rebase -i HEAD~3,但我得到了:

fatal: Needed a single revision

使用rebase -i HEAD~2 将正确地重新设置基址,但我需要将它们压缩为具有初始提交日期的单个提交。

有趣的是,rebase 总是错过每个项目的最早提交。在每个它中,它是唯一未分配给我的用户的提交(它是系统提交),所以我想知道这是否相关。

【问题讨论】:

    标签: macos git osx-mountain-lion rebase


    【解决方案1】:

    question cited 有一个可能的答案:设置 shell 变量 IFS(哪些字符在 shell 行中被解释为分隔“单词”,在这种情况下分隔参数)使得两个参数被解释为一个(显然未知),并且(内部)命令因引用的结果而失败。

    查看设置了什么(如果有的话)IFS (echo $IFS)。试试(unset IFS; git rebase -i HEAD~3)(在 bash(1) 中这里需要双引号,OS X shell 可能不同,但我对此表示怀疑)。

    【讨论】:

    • 无效。同样的问题。 echo $IFS 只是添加了一个空行
    • 也许运行sh -x /usr/libexec/git-core/git-rebase ...(这里是一个脚本,这应该会吐出执行的命令,并可能提供线索)。 请仅在临时存储库中进行实验
    • sh: /usr/libexec/git-core/git-rebase: No such file or directory
    • 好的,找出 git 隐藏 real 命令的位置(git 只是调用它们的包装器)。
    • 跑了 git-rebase,找到了一些选项。尝试运行它们,还没有快乐。嗯……
    猜你喜欢
    • 2022-11-02
    • 2021-07-16
    • 2012-10-08
    • 2013-08-07
    • 2010-11-05
    • 2013-10-31
    • 2014-09-03
    • 2023-03-10
    相关资源
    最近更新 更多