【发布时间】:2020-08-21 06:56:23
【问题描述】:
尝试使用 git subtree 跨多个项目共享公共库文件。这是我一直遇到的问题。
1) 添加子树所以我的项目的“jquery_treetable”子目录。
$ git subtree add -P jquery_treetable ssh://epedgov@gerrit.ericsson.se:29418/global_share/3pp/foss/jquery_treetable master --squash
添加子树后gitk如下所示
2) 将更新推送到主项目 repo(Gerrit)
$ git push origin HEAD:refs/for/master
remote: Resolving deltas: 100% (1/1)
remote: Processing changes: refs: 1, done
remote: ERROR: [36fb8f5] missing Change-Id in commit message footer
remote:
remote: Hint: To automatically insert Change-Id, install the hook:
remote: gitdir=$(git rev-parse --git-dir); scp -p -P 29418 epedgov@gerrit.ericsson.se:hooks/commit-msg ${gitdir}/hooks/
remote: And then amend the commit:
remote: git commit --amend
remote:
To https://gerrit.ericsson.se/a/lte/tools/mkdoc
! [remote rejected] HEAD -> refs/for/master ([36fb8f5] missing Change-Id in commit message footer)
3) git log 如下所示
4) 我认为,我之所以被拒绝,是因为 git log 的第二次提交中缺少 change-id (Squashed one)。但是如何为这个 Squashed 子树添加 Change-id。
【问题讨论】:
-
一个棘手的情况可能是更改 ID 始终位于提交消息的最后一行
-
@prudviraj 更新了问题。再次检查
标签: git gerrit git-push git-subtree