首页
学习
活动
专区
工具
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 中提交

38620

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

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

22420

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

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

52623

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。

54231

每个 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

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

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

2K50

Git 相关问题

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

2K10

git操作说明超详细

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

1.5K20

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

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

20910

Merge vs Rebase

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

1.6K20

2022 最新 Git 面试题

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

12210

从亲身经历谈谈如何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 标签名 用来在当前提交版本创建一个标签。标签是一个引用,可以用来标记项目中重要点,例如发布版本。

44140

git 常用指令与简单规范

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

22720

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隐藏文件夹

,并且维护了一个跟远端关联关系 映射关系:本地仓库和官方远程仓库进行同步,同步方法:如分支映射关系、当前提交 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.5K311

十分钟了解 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 级父提交

54820

如何撤销 Git 操作?

$ git revert [倒数第一个提交] [倒数第二个提交] git revert命令还有两个参数。 --no-edit:执行时不打开默认编辑器,直接使用 Git 自动生成提交信息。...二、丢弃提交 如果希望以前提交在历史中彻底消失,不是被抵消掉,可以使用git reset命令,丢弃掉某个提交之后所有提交。...$ git commit --amend -m "Fixes bug #42" 它原理是产生一个提交对象,替换掉一次提交产生提交对象。 这时如果暂存区有发生变化文件,会一起提交到仓库。...六、撤销当前分支变化 你在当前分支做了几次提交,突然发现放错了分支,这几个提交本应该放到另一个分支。...[当前分支此前最后一次提交] # 切换到 feature 分支 $ git checkout feature 上面的操作等于是撤销当前分支变化,将这些变化放到一个新建分支

1.3K10

Git 中文参考(五)

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

10710
领券