繁体   English   中英

Git Rebase:在目录结构改变后添加文件

[英]Git Rebase: Adding files after directory structure changed

我有以下场景:

我有 Repo1,我在 Repo2 中创建了它的副本,方法是克隆 Repo1,然后将原点更改为 Repo2。 到现在为止还挺好。 在 Repo 2 中否,我想创建一个 src 文件夹并将所有文件移动到其中,因此我们有以下情况:

回购1:

- file1
- folder1
  -file2

回购2:

-src
  - file1
  - folder1
    -file2

到现在为止还挺好。 不,当我将 Repo2 重新绑定到 Repo1并且 file1 已更改时,它会检测到这一点并将更改添加到 Repo2 的 src 文件夹内的正确 file1 中。

问题是当我在 Repo1 中添加一个文件然后 rebase 它没有检测到这一点并将新文件放在 src 文件夹之外。

关于如何解决这个问题的任何提示,以便顺利重新定位将成为可能?

非常感谢!

假设在Repo2第一个承诺,这不是在Repo1是移动文件到子目录:

git switch -c tmp repo-1/master
git rm -r *
mkdir src
git read-tree --prefix=src -u HEAD
move_commit=$(git rev-list repo-1/master..master | tail -1)
git commit --no-edit -c $move_commit
git rebase --onto tmp $move_commit master
git branch -d tmp

或者,如果您不坚持重新定位,则可以执行以下任一操作:

  • git merge -s subtree repo-1/master
  • git subtree pull --prefix=src repo-1 master

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM