标签: git-notes

git:如何删除本地ref分支?

删除本地引用分支(refs/notes/origin/commits)有点困难.我能够使用该命令删除远程存储库中的分支(refs/notes/origin/commits)

git push origin :refs/notes/origin/commits
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在我的本地存储库中删除相同的分支时,我得到以下错误

[User@centos Clone]# git branch -rd refs/notes/origin/commits
error: remote branch 'refs/notes/origin/commits' not found.
Run Code Online (Sandbox Code Playgroud)

有什么建议?

git git-notes

31
推荐指数
2
解决办法
3万
查看次数

使用git filter分支重写历史记录时保留git备注

出于某些原因,我必须重写我的git存储库的整个历史记录来更改每次提交的committer_id.但是,我附加了一个或多或少每个提交的注释,并使用git-filter-branch来更改committer_id将在逻辑上创建新的提交,留下注释.有没有办法将笔记复制到匹配的新提交中?

这个主题似乎提出了类似的问题,但在2011年没有解决方案.

谢谢您的帮助!

git git-filter-branch git-notes

10
推荐指数
1
解决办法
432
查看次数

克隆时获取git笔记

我知道克隆后可以使用以下方式获取git note:

git fetch origin refs/notes/*:refs/notes/*
Run Code Online (Sandbox Code Playgroud)

甚至可以在git config中进行设置以始终获取。

但是,在克隆时,我没有得到注释,因此我必须先克隆然后提取。尽管我确实看到--mirror在克隆时使用确实也会得到注释。但是,我的最佳设置是无需克隆就可以克隆任何存储库(因为这意味着--bare并且还会获取其他不需要的引用)并获得注释。

有什么方法可以设置例如git config来在克隆时获取特定的其他引用?

git git-notes

8
推荐指数
1
解决办法
1462
查看次数

如果这些笔记的提交被压扁,有没有办法自动合并笔记?

例如:

git commit -am "Something"
git notes append -m "Dark "
git commit -am "Something"
git notes append -m "Side"

git rebase -i
# now I squash two commits and I expect to see "Dark Side" here
# but it show that note is undefined
git notes show 
Run Code Online (Sandbox Code Playgroud)

git git-notes

7
推荐指数
1
解决办法
733
查看次数

如何获取给定目录名的树形哈希?

我想在树对象上附上一个注释.但是,为了做到这一点,我首先需要知道树对象的哈希值.对于作为我的存储库一部分的给定目录名,如何获取其所属的树对象的哈希以便为其附加注释?

从阅读这个答案我知道我可以使用

git cat-file -p master^{tree}
Run Code Online (Sandbox Code Playgroud)

列出根树的内容,但我仍然需要grep目录名的输出,并递归地遵循嵌套的树对象来获取树对象的层次结构中较深层目录的哈希值.

基本上,我正在寻找虚构get-tree-hash.sh脚本的实现.如果被称为

get-tree-hash.sh path/to/directory/in/my/git/repo
Run Code Online (Sandbox Code Playgroud)

它应该输出

The hash for the "repo" tree inside "path/to/directory/in/my/git" is:
92a68a2f5560fa7080393b633e2afd1d5271deef
Run Code Online (Sandbox Code Playgroud)

git git-notes

7
推荐指数
2
解决办法
1970
查看次数

BFG之后的git说明?

我从SVN迁移到git,我在每个git提交中都有一个注释,引用了SVN版本号.在repo import之后我使用BFG repo清理器从二进制文件和其他垃圾中清除git历史记录.不幸的是现在我输入时没有注意到git log.我想BFG忘记更新笔记提交的引用.BFG以下列格式留下*.txt报告,将旧对象id映射到新对象id:

0001b24011381e8885683cd1119ba4cb077fa64b c81149b1b52b9e1e1767d6141f292891d715edb5
00024eecdc31f2f6e67018f7d6f00e7c1ad03f1f 326ee3b508e3dd2934ec1f50069195f86ea1a1c7
00028e04dcc2d59bd835b447bd3a207ae481696c 3d18e9b9d3336e59d62093200b81603ffefcc747
Run Code Online (Sandbox Code Playgroud)

在给出上述映射的情况下,您能否建议一些脚本快速修复注释?

PS:我几乎可以肯定问题是由于没有更新refs引起的,因为当我输入git notes第二名时,我可以看到在BFG报告中被认为是旧的引用object-id-map.old-new.txt

git git-notes bfg-repo-cleaner

7
推荐指数
1
解决办法
340
查看次数

Git注意到细节

我读过这个这个,但仍然认为他们是晦涩难懂.到目前为止了解:

  • 创作(git notes add -m "a note")
  • 注释是命名空间

问题:

  1. 注意似乎没有创建一个提交,所以push(例子)如何可能为他们?它下面的机制是什么?如果不是提交,概念上添加什么?
  2. 我在哪里可以看到我push在Github UI上的'ed笔记?
  3. Github 提交评论之间是否存在任何关系?
  4. 如果Github评论注释我如何获取它们并在我的本地comp上看到它们git log
  5. 如果Github评论不是笔记,它们是什么,是否可以获取它们?
  6. 笔记是否合并?怎么样?
  7. 编辑的笔记是否有任何解决冲突的警告?
  8. 有没有其他问题/困难与笔记?

谢谢

git git-notes

6
推荐指数
1
解决办法
2808
查看次数

当我执行git push/git pull时,是否可以让git自动更新远程服务器上的注释

目前,如果我在git中向对象添加注释,我必须明确地将此信息推送/拉到远程服务器.

是否可以配置git,这样当我执行git push它时,它会推送我的本地笔记更改以及任何本地源更改?

同样对于git pull.

git git-notes

5
推荐指数
1
解决办法
562
查看次数

Git:获取分支的所有笔记

我们想用 来注释我们的提交git notes add,这效果很好。要获取带有注释的所有提交的列表,我们使用此命令

git notes | cut -d' ' -f2 | xargs -ihash git log hash -1
Run Code Online (Sandbox Code Playgroud)

现在我们只寻找一个分支的注释。我在这里不知所措,因为笔记对分支一无所知。可能有一种方法可以开始git log询问git notes是否有提交注释。但我不确定这对于大型存储库来说是否会变慢。

有任何想法吗?

git git-notes

5
推荐指数
1
解决办法
2969
查看次数

在 Git 存储库中存储针对单个文件的自定义元数据

我正在使用 Git 存储库并希望定义自定义属性以应用于存储库中的每个文件。然后可以在每次提交时更新这些属性。理想情况下,属性应该易于搜索并最终导出。

在 Git 中有一种简单的方法可以做到这一点吗?我已经查看了 Git 笔记,但据我所知,这是每个提交而不是每个文件。

谢谢。

git metadata git-notes

5
推荐指数
2
解决办法
3291
查看次数

查找具有特定 git note 的提交

我在我的存储库中使用 git Notes。有时我需要找到包含给定字符串的注释的提交。到目前为止我正在使用这个命令:

git log --show-notes=* --grep="PATTERN" --format=format:%H
Run Code Online (Sandbox Code Playgroud)

这里的问题是,这会打印带有 PATTERN 的每个提交 SHA,即使它不在注释中,仅在提交消息中。有更好的方法吗?

git git-notes

5
推荐指数
1
解决办法
920
查看次数

与ClearCase相比,如何使用git元数据策略?

在我之前的开发人员生活中,clearcase是10年以上用于版本控制的工具.现在,我工作的组织已经转移到git 4年了.在clearcase中,有易于访问的元数据结构,例如所有级别的项目上的属性,例如存储库或分支OR标签.git笔记存在,但经过一些网上冲浪,我没有遇到任何明确的有效方法,以及为什么这样做.例如,UCM ClearCase基线升级级别是一个很好的概念,我希望在git中这么简单.

我代表这个特定问题的开发社区统计数据:<100个开发人员,<5个主要发布分支,<100个客户补丁分支,代码库大小:<1000000行代码.

因此需要一些适当的元数据策略和工具.

在clearcase中,存在以下元数据结构:

  • 标签(常见用法:指出外部SW交付中包含的所有文件修订)
  • 属性,可以应用于标签或分支:

    • label属性,可以有任何值,常用用法:告诉标签的状态:TEST_RESULT:OK | NOK或CUSTOMER_AVAILABILITY:GENERAL | LIMITED | INTERNAL_ONLY
    • 分支属性,常用用法:BRANCH_STATUS:ACTIVE | OBSOLETE
  • UCM基线是一种带有状态属性的标签形式(例如:参见https://www-304.ibm.com/support/docview.wss?uid=swg21135893)

  • 超链接(例如用于指向合并方向)

特别是:

  • 标签+属性构造,可用于TEST_RESULT
  • 分支+属性可以使BRANCH_STATUS变得清晰

git performance metadata clearcase-ucm git-notes

3
推荐指数
1
解决办法
186
查看次数

如何签署 Git 笔记?

Git 注释是向 Git 对象添加元信息的功能。请参阅这篇Stackoverflow 文章了解更多详细信息。与提交类似,我也想签署注释。

我的本地 Git 配置为对所有提交进行签名。虽然签署 Git 提交按预期工作,但 Git 注释仍然未签名。在我的本地 Git 配置中,我有以下内容:

# excerpt from ~/.gitconfig
[commit]
    gpgsign = true
Run Code Online (Sandbox Code Playgroud)

为了签署笔记,我尝试了以下方法。

# excerpt from ~/.gitconfig
[commit]
    gpgsign = true
Run Code Online (Sandbox Code Playgroud)

我怎样才能使 Git 注释也被签名?

git security digital-signature git-notes

2
推荐指数
1
解决办法
92
查看次数