linux查看git是否运行,关于linux:使用脚本检查git分支是否领先于另一个

我有branch1和branch2,我想要某种形式:

git branch1 isahead branch2

这将显示branch1是否具有branch2没有的提交(并且可能还指定了那些提交)。 我无法检查差异原因branch2是否超出branch1(已提交branch1没有)。

有办法吗? 我查看git diff并找不到任何内容

我认为"前方"或"后方"一词仅适用于将本地分支与远程分支进行比较。 我不确定使用比较两个分支的术语是否有意义,因为它可能有完全不同的历史。

您可以使用

git log branch2..branch1

如果branch1在branch2之前没有提交,则输出将为空。

您也可以使用git rev-list --count branch2..branch1

这将显示未来的提交数量

资源

两者都很棒 - 第二个更适合脚本。 谢谢!

--right-only(或任何相关选项)仅适用于三点对称差异语法。 这里没有效果,可以简单地省略。

谢谢你,我根据你的评论编辑了答案;)

matthiasbe的答案很好用于许多目的,但对于脚本,只要你的Git不是太古老,1,你通常会想要使用:

if git merge-base --is-ancestor commit-specifier-1 commit-specifier-2; then

# commit specifier #1 is an ancestor of commit specifier 2

else

# commit specifier #1 is NOT an ancestor of commit specifier 2

fi

作为测试。这是因为git merge-base --is-ancestor将结果编码为退出状态,因此您无需运行单独的测试来将数字与某些内容进行比较。

请注意,一个分支尖端可能在另一个分支尖端之前和之后:

$ git rev-list --left-right --count stash-exp...master

1       6473

这里,指定的提交都不是另一个的祖先。但是,鉴于这些其他说明符:

$ git rev-list --left-right --count master...origin/master

0       103

我们看到master严格地落后于origin/master,所以:

$ git merge-base --is-ancestor master origin/master && echo can fast-forward

can fast-forward

从查看git rev-list --count origin/master..master的零计数得到的答案是一样的:

$ git rev-list --count origin/master..master

0

在Git版本1.8.0中引入了1 git merge-base --is-ancestor。一些系统仍在使用Git 1.7 ...

你已经得到了答案。所以我会添加更多内容。

git cherry命令可用于执行此操作。

git cherry branch1 branch2

这将列出branch2中的提交,但不包括branch1中的提交。如果需要,可以使用-v标志使其与哈希一起打印提交消息。

git cherry -v branch1 branch2

https://git-scm.com/docs/git-cherry

希望能帮助到你 :)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Git是一个分布式版本控制系统,它可以追踪文件的变化并协调多人在同一个项目上的工作。它被广泛用于软件开发中,特别是团队协作开发。 Git的一些重要概念包括: 1. 仓库(Repository):用于存储项目的所有文件和历史记录。 2. 分支(Branch):用于在同一个仓库中同时进行不同的开发工作,每个分支都有自己的提交历史。 3. 提交(Commit):表示对项目文件的一次更改,每个提交都有一个唯一的标识符。 4. 合并(Merge):将一个分支的更改合并到另一个分支中。 5. 远程仓库(Remote Repository):存储在网络上的仓库,用于多人协作开发和备份代码。 要使用Git,你需要先安装Git客户端,并在命令行中运行Git命令。根据你的操作系统,你可以选择安装Git Bash(Windows)、Git命令行工具(Mac)或者直接使用终端(Linux)。 以下是一些常用的Git命令: 1. git init:初始化一个新的Git仓库。 2. git clone <repository>:克隆远程仓库到本地。 3. git add <file>:将文件添加到暂存区。 4. git commit -m "<message>":提交暂存区的更改到本地仓库。 5. git push:将本地仓库的更改推送到远程仓库。 6. git pull:从远程仓库拉取最新的更改。 7. git branch:列出所有分支。 8. git checkout <branch>:切换到指定分支。 9. git merge <branch>:将指定分支的更改合并到当前分支

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值