如何快速检查哪个Git分支是最新的?
例如,如果git上有4个分支,如下所示:如何快速检查哪个Git分支是最新的?,git,git-branch,Git,Git Branch,例如,如果git上有4个分支,如下所示: branch1 branch2* (current branch) branch3 (newest commits here) master (oldest) 我的问题是: 如何检查当前分支是否是git命令行中最新的分支?如果没有,哪个分支机构是最新的?我的意思是哪个分支包含最新的提交 我如何在这个git存储库中列出比我的分支更新的所有提交(在任何分支中),而不切换到当前分支 您可以使用: git log --decorate --all --one
branch1
branch2* (current branch)
branch3 (newest commits here)
master (oldest)
我的问题是:
- 如何检查当前分支是否是git命令行中最新的分支?如果没有,哪个分支机构是最新的?我的意思是哪个分支包含最新的提交
- 我如何在这个git存储库中列出比我的分支更新的所有提交(在任何分支中),而不切换到当前分支
git log --decorate --all --oneline --graph
发件人:man git log
:打印显示的任何提交的引用名称--修饰
:假设refs/中的所有ref都列在命令行上为--all
:这是一起使用的--oneline
的缩写--pretty=oneline--abbrev commit
:在输出的左侧绘制提交历史的基于文本的图形表示--graph
git fetch
:
git fetch origin
此外,命令:
gitk
可以帮助您在一个简单的图形界面中查看所有提交和引用。Edit:您可以在我的这篇文章中找到相关的shell脚本 哪个部门是最新的? […]哪个分支机构是最新的?我的意思是哪个分支包含最新的提交 我把这理解为 在所有本地分支机构中,找到其小费是最近的一家(在某种意义上,例如提交日期)
git for each ref
对此很方便;这个瑞士军刀司令部值得花时间来完成它的使命
命令
让我们一步一步地建立我们需要的命令
-
):
每个ref的git--sort='-committerdate'\
--格式='%(参考名称:短)'\
参考文献/总目
最新分支
):
git config--global alias.newest-branch“for each ref--count=1--sort='-committerdate'--format='%(refname:short)'refs/heads”
健康检查
现在,让我们在中运行一些测试:
$git分支
维护
*主人
下一个
聚氨基甲酸酯
$git最新分行
聚氨基甲酸酯
#现在打印所有分支机构的列表及其提示的提交日期
每个引用$git--sort='-committerdate'\
--format=“%(引用名称:short)%09%(提交者日期)”
参考文献/总目
普周二2015年3月17日16:26:47-0700
下周二2015年3月17日16:14:11-0700
大师赛2015年3月17日星期二16:05:12-0700
缅因州3月13日星期五22:57:25 2015-0700
pu
确实是最新的分支。耶
目前的分支机构是最新的吗? 这很容易,现在我们有了我们的
最新分支
别名;我们所要做的就是将当前分支的名称与最新分支的名称进行比较。(为了更加健壮,您可能希望使用完整的refname而不是简短的refname)
命令
当前分支的(短)名称由
$git symbolic ref——短头
主人
让我们将其与最新分支进行比较,然后如果当前分支是最新分支,则打印yes
,否则打印no
if[$(git最新分支)=$(git符号参考——短头)];然后
printf“是\n”
其他的
printf“否\n”
fi
化名
太好了!为了方便起见,让我们也为此定义一个别名(下面称为islatest
):
git config--global alias.isnewest'!if[$(git最新分支)=$(git rev parse--abbrev ref HEAD)];然后printf“是\n”;else printf“否\n”;fi'
健康检查
(从上一次的健全性检查中,我们已经知道,pu
是最新的分支。)
$git分支
维护
*主人
下一个
聚氨基甲酸酯
$git是最新的
不
$git结帐pu
切换到“pu”分支
您的分支机构使用“origin/pu”更新。
$git是最新的
对
$git结帐维护
切换到“维护”分支
您的分支机构的“来源/维护”是最新的。
$git是最新的分支
不
似乎起作用了⌐■-■代码>(⌐■_■)代码>
我如何在这个git存储库中列出比我的分支更新的所有提交(在任何分支中),而不切换到当前分支
如果你的意思是某个日期较新,这是一个很难解决的问题。在最坏的情况下,你必须探索整个DAG,因为Git并不禁止父母比他们的孩子有更近的日期。如果你的意思是拓扑顺序,那么就容易多了:
git log --branches HEAD..
(--branchs
标志将输出限制为可从至少一个引用/heads
访问的提交)当然,您可以通过添加诸如--oneline
,--decoration
等装饰性标志来调整该命令的输出,您是指其提示是最近(容易)的分支,还是最后创建的分支(更难)?我是指包含“最新提交”的分支,而不是其创建日期。Ba