首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Git如何找出在一个分支而不是另一个分支上执行的单个提交

Git 可以通过 git log 命令来找出在一个分支而不是另一个分支上执行的单个提交。以下是一个简单的步骤来实现这个目标:

  1. 首先,确保你已经在你想要检查的仓库的本地副本中。
  2. 使用 git log 命令,并使用 --oneline 参数来简化输出。这将显示每个提交的简短哈希值和提交消息。
  3. 使用 git log branch1 ^branch2 命令来查看在 branch1 上而不是 branch2 上的提交。这里,branch1 是你想要检查的分支,而 branch2 是你想要排除的分支。

例如,如果你想要查看在 feature-branch 上而不是 main 分支上的提交,你可以运行以下命令:

代码语言:txt
复制
git log feature-branch ^main

这将显示所有在 feature-branch 上而不是 main 分支上的提交。如果你想要查找特定的提交,你可以使用 git log 命令的 --grep 参数来过滤提交消息。例如,如果你想要查找包含单词 "bugfix" 的提交,你可以运行以下命令:

代码语言:txt
复制
git log --grep="bugfix"

这将显示所有包含 "bugfix" 单词的提交。你可以将这些选项组合在一起,以找到在一个分支上而不是另一个分支上的特定提交。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

7.1 Git 工具 - 选择修订版本

了解它们并不是必需的,但是了解一下总没坏处。 单个修订版本 你可以通过 Git 给出的 SHA-1 值来获取一次提交,不过还有很多更人性化的方式来做同样的事情。 本节将会介绍获取单个提交的多种方法。...你可以在你的分支上执行 rev-parse $ git rev-parse topic1 ca82a6dff817ec66f44342007202690a93763949 引用日志 当你在工作时, Git...提交区间 你已经学会如何单次的提交,现在来看看如何指明一定区间的提交。 当你有很多分支时,这对管理你的分支时十分有用,你可以用提交区间来解决 “这个分支还有哪些提交尚未合并到主分支?”...的问题 双点 最常用的指明提交区间语法是双点。 这种语法可以让 Git 选出在一个分支中而不在另一个分支中的提交。 例如,你有如下的提交历史 Figure 7-1 ? Figure 7-1....另一个常用的场景是查看你即将推送到远端的内容: $ git log origin/master..HEAD 这个命令会输出在你当前分支中而不在远程 origin 中的提交。

40320
  • 【GIT版本控制】--高级分支策略

    一、分支合并策略 在Git中,高级分支策略是为了有效地管理和整合分支而设计的。其中一个关键方面是分支合并策略,它定义了如何将一个分支的更改合并到另一个分支。...二、Rebase操作 在Git中,rebase 操作是一种高级分支策略,用于将一个分支的更改应用到另一个分支上。...通过 rebase,你可以将某个分支上的所有提交应用到另一个分支的顶部,以使分支看起来像是在一系列连续的提交中进行的更改,而不是合并提交的历史。...三、Cherry-pick操作 cherry-pick 操作是Git中的一项高级分支策略,用于选择并应用单个提交到当前分支,而不是像合并或rebase一样整体合并分支。...这使得你可以更精细地控制代码的集成,但需要小心谨慎地使用,以确保所选择的提交适合当前分支的上下文。 四、总结 分支合并策略是Git中的关键概念,它定义了如何将一个分支的更改合并到另一个分支。

    28320

    Git最佳实践,这样用就对了

    通过这个查看器,可以很方便地看出来repo是怎么成长的,有那些不必要的分支,如何从一个分支跳到另一个,等等。这是TortoiseGit比其他git UI好的一个重要原因。...不管是Visual Studio里的、SourceTree、还是UGit,在UI设计上都像用传统的VCS思路来套用到git上,而不是git的思路。主它们的共同问题就是,基本只关注于当前分支。...如果你有后续工作需要在那个分支上做,就继续在你本地的分支上完成就是了。这和服务端有没有这个分支一点关系都没有。 因为每个分支都是平等的,可以推出在任何一个分支上都可以新建分支。...修订,amend,表示当提交的时候,是不是要覆盖掉上一个commit。打开的话,提交之后还会只有一个commit,而不是两个。 关闭amend 打开amend 现在的问题就是,什么时候用什么。...这时候应该把你的分支reset到新的去,force push,再删掉新的;而不是关掉原先的MR,在新分支上开个新MR。

    1.1K24

    Git还能这样用?一文看懂Git最佳实践!

    通过这个查看器,可以很方便地看出来 repo 是怎么成长的,有那些不必要的分支,如何从一个分支跳到另一个,等等。这是 TortoiseGit 比其他 git UI 好的一个重要原因。...不管是 Visual Studio 里的、SourceTree、还是 UGit,在 UI 设计上都像用传统的 VCS 思路来套用到 git 上,而不是 git 的思路。...因为每个分支都是平等的,可以推出在任何一个分支上都可以新建分支。比如,如果特性 B 依赖于特性 A,你不用等特性 A 合并了才开始做特性 B。...修订,amend,表示当提交的时候,是不是要覆盖掉上一个 commit。打开的话,提交之后还会只有一个 commit,而不是两个。 关闭 amend 打开 amend 现在的问题就是,什么时候用什么。...这时候应该把你的分支 reset 到新的去,force push,再删掉新的;而不是关掉原先的 MR,在新分支上开个新 MR。

    98831

    ​2019 DevOps 必备面试题——代码版本控制篇

    将 N 个提交压缩到单个提交中有两种选择。...你应该首先说 Git rebase 是一个命令,它将另一个分支合并到当前你正在工作的分支中,并将所有位于另一分支之前的本地提交,移到该当前工作分支历史记录顶部。...所以你可以这么说,为了获得在特定提交中更改的文件列表使用命令: git diff-tree -r {hash}  给定提交哈希值,这个命令将列出在该提交中更改或添加的所有文件。...-r 标志会让命令列出各个文件,而不是仅将它们折叠到根目录名称中。...name-only -r {hash} 这里 -no-commit-id 将禁止提交哈希值出现在输出中,而 -name-only 只会打印文件名而不是它们的路径。

    2.1K50

    每个 Tester 都应该知道的 Git 命令

    ://github.com//foo.git foo Git 分支 如何在 Git 仓库中创建一个新的分支 当您想开发一个新需求时,通常会在 Git 中创建一个新分支。...如何在 Git 中删除分支 要删除本地分支: git checkout -d<local_branch> 使用 -D 参数强制执行删除。...然后打开另一个交互式窗口,您可以在其中将提交消息更新为一个新的提交消息。 Git 推送 在提交更改后,下一步是推送到远程仓库。...获取远程仓库更新 git fetch upstream Git 拉取 拉取只是执行一次提取,然后执行一次合并。当使用 git pull 时,git 会自动合并其他提交,而不是查看它们。...重新基础将一个分支的更改重新写入另一个分支,而不创建新的提交。

    1.7K20

    Git 相关问题

    当你执行 git fetch 时,它会从所需的分支中提取所有新提交,并将其存储在本地存储库中的新分支中。如果要在目标分支中反映这些更改,必须在 git fetch 之后执行git merge。...要获取特定提交中已更改的列表文件,请使用以下命令: git diff-tree -r {hash} 给定提交哈希,这将列出在该提交中更改或添加的所有文件。...-r 标志使命令列出单个文件,而不是仅将它们折叠到根目录名称中。 你还可以包括下面提到的内容,虽然它是可选的,但有助于给面试官留下深刻印象。...,而 -name-only 只会打印文件名而不是它们的路径。...什么是 Git bisect?如何使用它来确定(回归)错误的来源? 我建议你先给出一个Git bisect 的小定义。 Git bisect 用于查找使用二进制搜索引入错误的提交。

    2.1K10

    git的操作说明超详细

    2.3.6 示例 下面的示例演示本工作流如何用于管理单个发布循环。假设你已经创建了一个中央仓库。 创建开发分支 ? 第一步为master分支配套一个develop分支。...Forking工作流和前面讨论的几种工作流有根本的不同,这种工作流不是使用单个服务端仓库作为『中央』代码基线,而让各个开发者都有一个服务端仓库。...这意味着各个代码贡献者有2个Git仓库而不是1个:一个本地私有的,另一个服务端公开的。 ?...在创建了自己服务端拷贝之后,和之前的工作流一样,开发者执行git clone命令克隆仓库到本地机器上,作为私有的开发环境。 要提交本地修改时,push提交到自己公开仓库中 —— 而不是正式仓库中。...但不要害怕,这个工作流实际上就是在功能分支工作流之上引入另一个抽象层。 不是直接通过单个中央仓库来分享分支,而是把贡献代码发布到开发者自己的服务端仓库中。

    1.6K20

    长文 | 我如何使用 git

    尽管如此,我始终坚持的一般原则是:我只关心最终的PR,它如何被审查,以及合并后会变成什么样子,而不是导致审查和合并的单个提交。 我会尽早开启PR。一旦我有第一个提交,我就会开启PR。...变基 我会将我的PR变基到主分支上,而不是将主分支合并到我的分支中。为什么?因为当我使用git lr(我的别名,用于查看我分支上的git日志)时,我只想看到我分支上的提交。...使用git add -p并git commit我想要保留在当前分支上的更改,然后将其他想要放在另一个分支上的更改git stash起来,切换到目标分支,git stash pop并提交。...有时我甚至会把我想要的更改分成同一分支上的两个提交,然后切换分支,使用git cherry-pick将其中一个提交挑拣过去,回到旧分支,执行git rebase -i并删除已经移动过去的提交。...我如何选择一种策略而不是另一种?这取决于我想要在另一个分支上做的更改的规模,以及我工作目录中未提交的内容有多少。 我对分支名称不太挑剔,只要它们有点意义就行。

    8510

    程序员的20大Git面试问题及答案

    当你执行 git fetch 时,它会从所需的分支中提取所有新提交,并将其存储在本地存储库中的新分支中。如果要在目标分支中反映这些更改,必须在 git fetch 之后执行git merge。...要获取特定提交中已更改的列表文件,请使用以下命令:git diff-tree -r {hash}给定提交哈希,这将列出在该提交中更改或添加的所有文件。...-r 标志使命令列出单个文件,而不是仅将它们折叠到根目录名称中。你还可以包括下面提到的内容,虽然它是可选的,但有助于给面试官留下深刻印象。...,而 -name-only 只会打印文件名而不是它们的路径。...当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。

    30510

    Merge vs Rebase

    概念 首先要理解的是git rebase和git merge解决了同样的问题。这两个命令都旨在将更改从一个分支集成到另一个分支 - 它们只是以不同的方式进行。...试想一下当你开始在专用分支中开发新功能时另一个团队成员以新提交更新master分支会发生什么。这会出现分叉历史记录,对于使用Git作为协作工具的任何人来说都应该很熟悉。 ?...这种使用git rebase类似于本地清理(并且可以同时执行),但在此过程中它包含了那些master上游提交。 请记住,rebase到远程分支而不是master。...例如,如果你和另一个名为John的开发人员新增了对feature分支的提交,从John的仓库中获取远程分支后,你的仓库可能如下所示: ?...如果你更喜欢提交的干净,消除不必要合并的线性历史记录,那么你在继承另一分支的更改时应该使用git rebase 而不是git merge。

    1.7K21

    2022 最新 Git 面试题

    6.在Git中,你如何还原已经 push 并公开的提交?...要获取特定提交中已更改的列表文件,请使用以下命令: git diff-tree -r {hash} 给定提交哈希,这将列出在该提交中更改或添加的所有文件。...-r 标志使命令列出单个文件,而不是仅 将它们折叠到根目录名称中。 你还可以包括下面提到的内容,虽然它是可选的,但有助于给面试官留下深刻印象。...将禁止提交哈希值出现在输出中,而 -name-only 只会打印文件名而不是它们的路 径。...当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改 (或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件 索引中。

    22010

    从亲身经历谈谈如何用Git分支解决项目生产实践中的痛点

    严肃的气氛下,我下意识在想自己是不是凉了,于是我迅速定位原因,发现是后端接口发生变更而未通知前端,责任人正好是刚来没多久的后端新人。...研发部门是一个整体,当着客户的面出了生产事故,这让大家面子上都不好看,所以我自告奋勇提出在研发部内部做一次Git分支管理的分享,看看能不能帮大家解决这个问题。...而我们向版本库提交代码的一个基本方向是: 工作区 --> 暂存区 --> 版本库 ? 当对工作区修改(或新增)的文件执行git add命令时,暂存区的目录树被更新。...当执行git commit命令进行提交操作时,暂存区的目录树写到版本库中。 分支管理 Git最核心的内容当然是分支管理,设置合理的分支可以让研发流程有条不紊。...千万不要写着写着代码,突然萌生了在当前分支顺手改另一个问题的想法,这可能会让你陷入更大的麻烦! 分支命名 取名字永远是个难题,组件如何命名,方法如何命名,这些问题在平时开发过程中总是让人抓耳挠腮。

    1.1K20

    Git常用命令汇总篇(附使用详细介绍)

    众所周知,Git是一个开源的分布式版本控制系统,用于跟踪和管理源代码的变更。而Git有着大量的常用命令。...下面,我总结了Git的常用命令,一文教你如何快速控制Git。 常用操作 git push origin test 推送本地的test分支到远程仓库origin上。...· git fetch 从远程仓库获取所有的分支和标签,但是它并不会自动合并或修改当前的工作。这意味着,你可以在任何时候执行git fetch,而不必担心当前的工作被影响到。...· git checkout 用于切换到另一个分支。例如,git checkout new_branch将切换到名为new_branch的分支。...标签操作 git tag 标签名 用来在当前提交的版本上创建一个新的标签。标签是一个引用,可以用来标记项目中的重要点,例如发布的版本。

    52640

    git 常用指令与简单规范

    删除本地分支和远程分支 # 删除远程分支:在本地任意非要删除的分支上执行 git push origin --delete 分支名 # 删除本地分支 git branch -D 分支名 2.4....已提交:仅恢复已经提交的部分文件 # -- 后面为想要查看单个文件修改历史的文件路径 git log -- src/a.js ## 查出对应修改历史的 hash,并复制 # 恢复某个文件,后面跟文件路径...,和 merging 不同,rebasing 清除了历史,因为它完全是从一个分支转移到了另一个分支。...rebase 会将整个分支移动到另一个分支上,有效地整合了所有分支上的提交 主要的好处是历史记录更加清晰,是在原有提交的基础上将差异内容反映进去,消除了 git merge所需的不必要的合并提交 git...所谓"两分法",就是将代码历史一分为二,确定问题出在前半部分,还是后半部分,不断执行这个过程,直到范围缩小到某一次代码提交。

    27320

    探秘git隐藏文件夹

    ,并且维护了一个跟远端的关联关系 映射关系:本地仓库和官方远程仓库进行同步,同步的方法:如分支的映射关系、当前提交 1.3 git仓库配置 git clone xxxx 克隆一个远端分支会产生一个....core.bare=false # 默认不创建裸仓库,裸仓库是创建的仓库并不包含工作区 ,在裸仓库上执行Git 命令,而从裸仓库 clone 下来的本地仓库可以进行正常的 push 操作...这两个配置跟git fetch、git pul命令有关系,这两个命令就是在这个配置找映射关系。...角色间的关系如下:commit对应一个tree,tree里面可以包含另一个tree,tree的叶子节点是一个blob,blog代表这个文件的某个版本状态。...比如说我们想退回到当前提交的前一个提交,就可以这样方便表示:git reset HEAD^ FETCH_HEAD记录了远端获取到的状态。最新从远程分支获取的分支。

    4.6K311

    Git 中文参考(五)

    fast-forward 快进是一种特殊类型的合并你有一个修订并且你正在“合并”另一个分支的变化恰好是一个后代你有什么在这种情况下,你不会进行新的合并 提交,而只是更新到他的修订版。...无论何时创建 Git 存储库,都会创建一个名为“master”的分支,并成为活动分支。在大多数情况下,这包含本地开发,虽然这纯粹是按照惯例而不是必需的。...log之类的命令的历史操作在一组提交上,而不仅仅是单个提交。...;例如,如果分支“稳定”和“主”的提示在一段时间之前偏离了共同的提交,那么 $ git log stable..master 将列出在主分支中但不在稳定分支中进行的提交 $ git log master...首先,如果您希望继续发布在最近版本之前发布的功能版本的维护修补程序,那么您必须创建另一个分支来跟踪该先前版本的提交。 为此,将当前维护分支复制到以先前版本号命名的另一个分支(例如,maint-X.Y。

    22310

    Git创建分支和查看分支命令「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君 branch:分支 是指在开发主线中分离出来的,做进一步开发而不影响到原来的主线 Git存储的不是一系列的更改集,而是一系列快照,当你执行一次commit时...,git存储一个commit对象,她包含它包含一个指针指向你当前需要提交的内容的快照。...git branch -a :查看所有分支列表 包括本地和远程 git branch -vv:可以查看本地分支对应的远程分支 git branch -v 查看一个分支的最后一次提交 过滤列表中已经合并或尚未合并到当前分支的分支...-m oldName newName:给分支重命名 5.切换分支 操作文件 git checkout fileName:放弃单个文件的修改 git checkout ....git cherry-pick commit_id 将一个分支的commit_id提交合并到当前分支上,并舍弃另一个分支上的其他提交。

    1.5K70

    十分钟了解 git 那些“不常用”命令

    ——git-scm 变基 说明:后面的举例每个分支都有不同的颜色,*前缀表示现在所处的分支,而 commitid 都由 C0、C1、C2 代替每一个提交的哈希值,箭头表示分支的继承。...可以看出来,红色圈圈是最主要的改变—— merge 合并分支后,会在 master 分支上 新增一个 C4 提交 ,而 C4 提交里面有 master和 bugFix 代码库所有的修改。...---- 二、git cherry-pick 选择 cherry-pick 可以将提交树上任何地方的提交记录取过来追加到 HEAD 上(只要不是 HEAD 上游的提交就没问题)。...• reset 执行后,master 分支移回到了 C1;现在我们的本地代码库根本就不知道有 C2 这个提交了 • revert 执行后,在我们要撤销的提交记录 C2 后面多了一个新提交 C2',而...延伸用法: 移动分支:可以直接使用 -f 选项让分支指向另一个提交。例如下面的命令会将 master 分支强制指向 HEAD 的第 3 级父提交。

    56620
    领券