You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git Bundle创建时如何从文件读取--not排除的修订版本?

解决Git Bundle从文件读取排除修订的问题

可行方案

方案1:使用xargs直接传递文件中的修订

xargs -a ../revlisttoexclude.txt git bundle create /path/to/mybundle --all --tags --not

xargs -a会读取指定文件的每行内容,将其作为后续Git命令的参数,完美替代手动输入--not <rev_1> <rev_2> ...的效果。

方案2:转换修订格式后通过--stdin传递

sed 's/^/^/' ../revlisttoexclude.txt | git bundle create /path/to/mybundle --all --tags --stdin

Git中^<修订>是--not <修订>的简写,sed命令给文件中每行的修订开头加上^,再通过--stdin按行传递给Git,即可实现排除指定修订的需求。

原命令失败的原因

  • echo "$(cat ../revlisttoexclude.txt)"会将文件中的换行替换为空格,所有修订被合并成一个字符串,Git无法识别为多个有效修订,因此没有排除任何内容。
  • Git 2.42.0调整了--stdin的行为,现在默认按每行一个修订读取输入,必须保证每个修订单独占一行才能被正确识别。

内容的提问来源于stack exchange,提问作者upInCloud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 21:06:00