git能否将引用推送到';参考文献/';迪尔?

git能否将引用推送到';参考文献/';迪尔?,git,Git,上下文 我们有一个常规的master生产分支和功能分支,这些分支在验证时被合并 我正在寻找一种方法来删除旧的功能分支,但在合并时保持一个跟踪,feature/gizmo指向commitea33ffc2 我们在合并时保留默认的提交消息,因此一种方法是通过git log重新查找名称;我想知道我是否可以以某种方式保留一个显式的ref,它不会破坏git log的输出--decoration或gitk或gitg或 我正在考虑在常规.git/refs/目录之外创建引用,例如: git update-ref

上下文

我们有一个常规的
master
生产分支和功能分支,这些分支在验证时被合并

我正在寻找一种方法来删除旧的功能分支,但在合并时保持一个跟踪,
feature/gizmo
指向commit
ea33ffc2

我们在合并时保留默认的提交消息,因此一种方法是通过
git log
重新查找名称;我想知道我是否可以以某种方式保留一个显式的ref,它不会破坏
git log的输出--decoration
gitk
gitg

我正在考虑在常规
.git/refs/
目录之外创建引用,例如:

git update-ref history/feature/gizmo feature/gizmo
git branch -d feature/gizmo
但是我找不到一种方法将存储在
.git/histroy/
中的引用推回到
origin

问题


有没有办法将
refs/
之外的引用推送到远程存储库?

好的,您不能将引用推到
refs
目录之外

但是,通过运行以下命令,您可以回答在将
功能
合并到
主功能
之前,最后一次提交是哪个的问题:

git rev-list --merges master | xargs -i sh -c \
'git merge-base -- is-ancestor {}^2 feature && git show {}^2'
让我们把它分解一下:

  • git rev list--merges master
    列出可从
    master
  • xargs-ish-c
    对于每个散列,运行以下命令
  • git merge base--is祖先{}^2功能
    确定合并提交的第二个父级(用
    ^2
    引用)是否是
    功能
    分支的祖先。换句话说,这个合并提交是否来自
    功能
  • &&git show{}^2
    如果是,则显示该提交的元数据和补丁。如果想要更简洁的输出,可以运行
    gitshow--oneline--no-patch{}^2

  • 如果要多次运行此命令,可以很容易地将其放入shell脚本甚至。

    AFAIK,您不能将引用推送到
    refs
    目录之外

    但是,通过运行以下命令,您可以回答在将
    功能
    合并到
    主功能
    之前,最后一次提交是哪个的问题:

    git rev-list --merges master | xargs -i sh -c \
    'git merge-base -- is-ancestor {}^2 feature && git show {}^2'
    
    让我们把它分解一下:

  • git rev list--merges master
    列出可从
    master
  • xargs-ish-c
    对于每个散列,运行以下命令
  • git merge base--is祖先{}^2功能
    确定合并提交的第二个父级(用
    ^2
    引用)是否是
    功能
    分支的祖先。换句话说,这个合并提交是否来自
    功能
  • &&git show{}^2
    如果是,则显示该提交的元数据和补丁。如果想要更简洁的输出,可以运行
    gitshow--oneline--no-patch{}^2

  • 如果要多次运行,可以很容易地将其放在shell脚本中,甚至是一个脚本中。

    难道不能使用它吗?@Enricoampidoglio:我正在寻找一种方法来保留常规git工具中未显示的引用。你想知道当一个功能分支被合并到
    master
    中时,它指向哪个commit分支,对吗?@enricoampidoglio:确切地说,可能需要使用
    git notes
    ?它允许将任意注释附加到任意提交。难道你不能使用它吗?@Enricoampidoglio:我正在寻找一种方法来保留常规git工具中未显示的引用。你想知道当一个功能分支被合并到
    master
    中时,它指向哪个commit分支,对吗?@enricoampidoglio:确切地说,可能需要使用
    git notes
    ?它允许将任意注释附加到任意提交。