git - 重播 git 在不同根目录下的 repo 提交

标签 git smartgit

我是 FreeGLUT 的当前维护者之一sourceforge 上的项目。此代码存储在 SVN 存储库中,但为了激发其他人的贡献,我想提供一个 git 存储库。我已经在 github 上有一个 svn 主干的 git-svn 克隆,目前在 github (通过 SmartGit 制作,实际上与 git-svn 并不兼容)。

我通过克隆 https://svn.code.sf.net/p/freeglut/code/trunk/freeglut 制作了这个。但是,我现在发现我应该克隆 https://svn.code.sf.net/p/freeglut/code 并让 SmartGit 的 svn 桥找出分支和主干。

我已经在本地制作了这个新的正确克隆。现在的问题是:我已经在旧的/错误的克隆的本地 git 存储库中进行了一些提交。我想将它们转移到我的新存储库中,但是由于磁盘上的根目录不相同,所以一个简单的 rebase 策略概述了 here行不通(我认为)。

我可以用补丁来做到这一点,因为 git apply--directory 参数来为补丁文件中的路径添加前缀,这将使事情正常进行,但后来我必须逐个提交。至少,我还没有找到将多个提交放入单个补丁文件(不压缩)并在我的 HEAD 之上重播它们的方法。

如何最好地解决我的问题?

最佳答案

好的,结果是:

  1. git format-patch可以生成包含一系列提交的文件,例如整个分支。
  2. git am使用 --directory 选项可以逐一重放补丁文件中包含的提交 ( see here ) 并为我提交它们。

问题解决了!

关于git - 重播 git 在不同根目录下的 repo 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20886763/

相关文章:

git - git 分支重命名会影响分支层次结构吗?

git - 我的 Git 更改去了哪里?

git - 使用 SmartGit 时如何更改 core.autocrlf?

git - 使用git,如何在冲突期间执行 'use theirs'?

git - 了解何时将一行代码添加到 GitHub 存储库

git - 如何将全局 gitignore 添加到 SmartGit/hg?

git - 有没有办法查看 SmartGit 执行的 shell 命令?

git - 如何找出我的功能分支是从哪个共享分支分支的

git - 如何在我的所有 Git 存储中搜索特定字符串?

git - GitHub/Azure Repos 上的服务器端自定义 git merge 驱动程序