从分支添加git子树

Geo*_*yan 16 git git-subtree

我正在尝试使用我的项目添加一个repo(称为cow)git subtree add.特别是,我想添加分支stable(不是master分支).我试过了:

git subtree add -P cow https://github.com/geoffryan/cow.git stable
Run Code Online (Sandbox Code Playgroud)

但是这返回了错误

'stable' does not refer to a commit.
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

git subtree add -P cow https://github.com/geoffryan/cow.git cow/stable
'cow/stable' does not refer to a commit.
Run Code Online (Sandbox Code Playgroud)

和:

git subtree add -P cow https://github.com/geoffryan/cow.git ca26d248a12c21264e32a2c212381cafb578c9fb
'ca26d248a12c21264e32a2c212381cafb578c9fb' does not refer to a commit.
Run Code Online (Sandbox Code Playgroud)

哈希是stable分支中最新提交的哈希值.我在网上看到的使用示例都master用于提交,是否可以subtree add在非主分支上使用?

gip*_*ipi 25

这似乎有效

$ git remote add cow https://github.com/geoffryan/cow.git
$ git fetch cow
$ git subtree add -P cow cow/stable
Added dir 'cow'
Run Code Online (Sandbox Code Playgroud)

我不明白如何直接使用命令与存储库部分.

  • 这可能有点晚,但你可以使用--squash保持git子树重播整个日志. (4认同)
  • 您可能希望添加`--squash`选项,以便git子树只从子项目中导入一个提交,而不是整个历史记录. (2认同)
  • 澄清一下,因为@rpattabi编辑了答案:`--squash`这不是正确的选项IHMO bc如果你使用`git subtree`你通常想要维护原始历史记录,否则你可以像往常一样简单地复制和提交文件。 (2认同)