首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建一个现有的子目录作为另一个git代码库的子树?

如何创建一个现有的子目录作为另一个git代码库的子树?
EN

Stack Overflow用户
提问于 2013-10-31 11:29:44
回答 2查看 3.1K关注 0票数 2

首先,我错误地将另一个repo源代码直接复制到一个更大的项目中,放在一个子目录中。从那时起,原始的repo和subdir都被更改了。现在我有了git-subtree的知识,我想使子目录成为一个真正的子树,这样我就可以很容易地从原始repo同步更改。

我尝试了“git-subtree分裂”,然后从原始的repo中拉出最新的源代码,它就这样工作了。但是,我不想要完整的历史记录,但是'--squash‘对'split’不起作用,下面是我的命令

代码语言:javascript
复制
git subtree split -P xxx-dir --onto==1940032
git remote add xxx https://github.com....
git fetch xxx
git subtree pull -P xxx-dir xxx master
# the pull worked, but whole history of xxx was imported too. '--squash' didn't work for above 'pull'

git subtree merge -P xxx-dir xxx/master --squash
# Can't squash-merge: 'xxx-dir' was never added. 

看起来挤压只适用于添加的子树,但不适用于拆分。

有什么想法吗?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-03-23 05:33:08

我被git-subtreegit subtree merge搞混了

它们是不同的东西,但也许git-subtree是某种git subtree merge stuff https://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging的包装器。

关于两者之间的区别,这是一个很好的答案:

What is the difference between git subtree merge and git-subtree

据我所知,做你要做的事情最简单的

1.删除xxx-dir目录并提交更改

代码语言:javascript
复制
rm -r xxx-dir
commit -am "xxx subtree"

2.添加子树

代码语言:javascript
复制
git subtree add --prefix=xxx-dir --squash xxx master

缺点是,这样做会改变3次提交的主要回购历史:

用于删除合并提交的提交,该提交将“导入”具有历史记录的子树“导入”为一次提交合并导入的子树的提交

  1. 删除xxx-dir目录的提交
  2. “导入”子树并将其历史压缩为一个提交的提交
  3. 合并导入的子树的提交

据我所知,这是git-subtree的一种限制。

顺便说一句,这应该是the source code of git-subtree,也许比我更熟练的人可以挖掘它。

再见!

票数 2
EN

Stack Overflow用户

发布于 2014-03-06 16:23:09

关于:

代码语言:javascript
复制
git subtree pull -P xxx-dir xxx master
# the pull worked, but whole history of xxx was imported too. '--squash' didn't work for above 'pull'

看起来你没有用--壁球。或者,您是想说您再次尝试了该命令,而不是使用--squash?git subtree pull --squash -P xxx-dir xxx master

..。关于以下内容:

代码语言:javascript
复制
git subtree merge -P xxx-dir xxx/master --squash
# Can't squash-merge: 'xxx-dir' was never added.

你是从哪个分支机构运行的?似乎您正在尝试将来自已签出的同一分支的更改合并到其自身的子文件夹中。由于该命令失败,因此无法合并。我不认为这是说挤压是问题所在,只是碰巧是一个挤压风格的合并失败了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19697968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档