问题描述
$ git log --graph --decorate --pretty=oneline --all --abbrev-commit
* b53390c (HEAD -> main) mini-project 3
* d4ba0ec mini-project 2
* 63d4aff mini-project 1
...以及一个根项目存储库,其历史记录如下所示:
$ git log --graph --decorate --pretty=oneline --all --abbrev-commit
* 70925ba (HEAD -> main) root 2
* 538af79 root 1
我想将迷你项目添加为根存储库中的子文件夹。我可以手动添加更新的内容,然后在根存储库中执行一次提交。 但是,我想保留小项目的提交(b53390c
、d4ba0ec
、63d4aff
)。
我找到了一种使用 git subtree
来做到这一点的方法;它感觉就像是实现此目的的完美工具:
$ git subtree add -P mini-project ../mini-project/.git main
git fetch ../mini-project/.git main
remote: Enumerating objects: 9,done.
remote: Counting objects: 100% (9/9),done.
remote: Compressing objects: 100% (4/4),done.
remote: Total 9 (delta 0),reused 0 (delta 0),pack-reused 0
Unpacking objects: 100% (9/9),713 bytes | 1024 bytes/s,done.
From ../mini-project/
* branch main -> FETCH_HEAD
Added dir 'mini-project'
$ git log --graph --decorate --pretty=oneline --all --abbrev-commit
* 16160c3 (HEAD -> main) Add 'mini-project/' from commit 'b53390c1057cb58ba34a6775b5c0c1334bba2cb4'
|\
| * b53390c mini-project 3
| * d4ba0ec mini-project 2
| * 63d4aff mini-project 1
* 70925ba root 2
* 538af79 root 1
但是,这是我的问题。 一旦迷你项目中有更多提交,我如何将更新(参见下面的 ea486b4
、8f78c20
)合并到根存储库的 mini-project
子目录中?
$ git log --graph --decorate --pretty=oneline --all --abbrev-commit
* ea486b4 (HEAD -> main) mini-project 5
* 8f78c20 mini-project 4
* b53390c mini-project 3
* d4ba0ec mini-project 2
* 63d4aff mini-project 1
我认为 git subtree merge
命令不会在这里帮助我。
如果 git subtree
在这里不理想,我可以使用其他(更优雅的)方法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)