首页
学习
活动
专区
圈层
工具
发布

【Git系列】利用 Bash 脚本获取 Git 最后一次非合并提交的提交人

在 Bash 脚本中,命令替换是一种将命令的输出赋值给变量的技术。这可以通过两种方式实现:使用反引号 () 或者$()。...脚本示例解析 下面是一个简单的 Bash 脚本示例,它演示了如何获取 Git 仓库中最后一次非合并提交的提交人,并将其存储在一个变量中,然后输出这个变量的值。 #!.../bin/bash # 定义一个变量来存储最后一次非合并提交的提交人 last_author=$(git log -1 --no-merges --pretty=format:'%an') # 输出这个变量...echo "The last non-merge commit author is: $last_author" 这个脚本首先定义了一个变量 last_author,它通过 git log 命令获取当前分支最后一次非合并提交的提交人名字...接着,脚本使用 echo 命令输出这个变量的值,告诉用户最后一次非合并提交的提交人是谁。

26100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    7.6 Git 工具 - 重写历史

    在本节中,你可以学到如何完成这些非常有用的工作,这样在与他人分享你的工作成果时你的提交历史将如你所愿地展示出来。 修改最后一次提交 修改你最近一次提交可能是所有修改历史提交的操作中最常见的一个。...使用这个技巧的时候需要小心,因为修正会改变提交的 SHA-1 校验和。 它类似于一个小的变基 - 如果已经推送了最后一次提交就不要修正它。...and added blame pick a5f4a0d added cat-file 当保存并退出编辑器时,Git 将你带回到列表中的最后一次提交,把你送回命令行并提示以下信息: $ git rebase...310154e updated README formatting and added blame pick f7f3f6d changed my name a bit 当保存并退出编辑器时,Git 将你的分支带回这些提交的父提交...最后将可以看到 Git 重写树与提交然后移动分支指针。 通常一个好的想法是在一个测试分支中做这件事,然后当你决定最终结果是真正想要的,可以硬重置 master 分支。

    77260

    关于 Git 重写提交历史的一些笔记

    --------王小波 ---- 公司要求在代码提交的时候,需要提交信息中包含任务单号,我在一次需求代码提交中,一个分支只有最后的几次提交信息中包含了任务单号,在最初的提交中没有包含任务单号,所以一直...比如 改变提交的顺序,改变提交中的信息或修改文件,将提交压缩或是拆分,或完全地移除提交,当然这些操作的前提是 在将你的工作成果与他人共享之前完成 修改最后一次提交 修改你最近一次提交可能是所有修改历史提交的操作中最常见的一个...如果你想要修改最后一次提交的实际内容,那么流程很相似: 首先作出你想要补上的修改,暂存 stash 它们,然后用git commit--amend 以新的改进后的提交来替换掉旧有的最后一次提交,使用这个技巧的时候需要小心...and added blame pick a5f4a0d added cat-file 当保存并退出编辑器时,Git 将你带回到列表中的最后一次提交,把你送回命令行并提示以下信息: $ git rebase...a bit 当保存并退出编辑器时,Git 将你的分支带回这些提交的父提交,应用 310154e 然后应用 f7f3f6d,最后停止。

    49220

    Git和Github

    -m [message] # 提交工作区自上次commit之后的变化,直接到仓库区 git commit -a # 使用一次新的commit,替代上一次提交 # 如果代码没有任何新变化,则用来改写上一次...commit的提交信息 git commit --amend -m [message] # 重做上一次commit,并包括指定文件的新变化 git commit --amend [file1] [file2...# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变 git reset [file] # 重置暂存区与工作区,与上一次commit保持一致 git reset --hard #...,并且应用到当前分支 git revert [commit] # 暂时将未提交的变化移除,稍后再移入 git stash git stash pop 分支管理 默认在 git 的仓库中,会有个分支的原点...拉出一个修改的分支,例如这个分支是用来添加某个功能的 在新分支上开发或者修改完成之后,提交到本地仓库,然后 push 推到自己的账户中 fork 过来的仓库 最后,在 Github 上你 fork 过来的仓库界面中找到

    47420

    Git 版本控制系统 笔记

    :a219584 1.登录页面-标签部分准备 假设: 我们 提交到 版本库 三次,我们需要回退到第一次提交时【第一次 index.html】 第一次:提交 html 页面【版本库:index.html...【第一次:index.html】覆盖 工作区和暂存区 的【index.html】,但是,原本的【index.css、index.js】会被删除 现在情况:工作区和暂存区【index.html(第一次提交的版本...】,但是,工作区的【index.css、index.js】没有变,不过暂存区只有【index.html(第一次提交的版本)】 现在情况:工作区和暂存区【index.html(第一次提交的版本)、index.css...publish 分支,修改内容页面的 html 文件的 title 标签,并提交一次 2、切换到 master,也在修改内容页面的 html 文件的 title 标签,并提交一次 解决冲突后,进行提交...,GitHub...) 1、注册第三方托管平台网站账号 地址:工作台 - Gitee.com 2、新建仓库得到远程仓库 Git 地址 3、本地 Git 仓库添加远程仓库原点地址 1、本地 Git 仓库添加远程仓库原点地址

    21010

    猫头鹰的深夜翻译:开发者必须了解的分支发布模型

    我们将origin/develop分支是为另一种类型的主分支,该分支上的代码始终处于一个稳定的可发布的状态。该分支上的所有变更都应当被合并到master分支上,并搭上一个发布标签。...直到这一刻,用于下一次发布的开发分支才知道自己下一次的发布版本号为0.3还是1.0。在发布分支创建时会按照版本号的演进规则决定本次发布的版本号。 创建发布分支 发布分支创建于开发分支。...最后,发布分支上的代码必须被合并会开发分支,使得开发分支上的代码也包含了发布版本的内容以及修复的bug。...接着在一次或多次提交的代码中修复问题。...合并到发布分支中,可以最终将该修复通过发布分支带回到开发分支中。

    60110

    7. Git 命令实战

    # 加上了 -u 参数,Git 不但会把本地的master分支内容推送的远程新的master分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令...其中 git clone --mirror 远程跟踪设置,所以如果你运行 git 远程更新所有参考将被覆盖从原点,如果你刚刚删除镜像并重新登记。正如文档最初说的,它是一面镜子。...撤销修改 场景1:当你改乱了工作区某个文件的内容,还未提交到工作区, 且想直接丢弃工作区的修改时,用命令git checkout -- file。用干净暂存区内容(同版本库)去覆盖工作区的内容。...reset 和 revert 本地分支可以 reset, 回退分支 revert 回归分支会生成新的提交记录, 远程分支建议如此操作....如果一次性删除多个,可以写多个 git push 主机名 :远程分支名 :远程分支名 :远程分支名 方法二 另外一个删除分支的命令是 git push 主机名 --delete 远程分支名 方法三

    35410

    哥尼斯堡七桥问题

    图论是数据结构和算法中十分重要的框架,比如单源最短路径,最小生成树,拓扑排序这些都是图论研究中的经典问题, 而图论的开创就绕不开欧拉提交的《哥尼斯堡的七座桥》问题 下面是之前写的关于图的相关文章,相关源码使用...我们将图中的问题再进行一次整理,首先有四个顶点A,B,C,D,他们之间被七条边连接起来, 我们如何在每条边只走一次的情况下,将所有的边走完,并回到回到出发点。...当时数学家欧拉将问题抽象出来,把每一块陆地考虑成一个点,连接两块陆地的桥以线表示,并得到上图的几何模型,从几何模型中可以会发现:如果我们要想回到原点,并且过每座桥,那么点相连的线必须是偶数,如果是奇数我们必然回不来...于是乎,欧拉发现了一笔画规律(之后提交《哥尼斯堡七桥》的论文,同时开创了数学新分支---图论): 1.凡是由偶点组成的连通图,一定可以一笔画成。...画时可以把任一偶点为起点,最后一定能以这个点为终点一笔画完此图。 2.凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成。画时必须把一个奇点为起点,另一个奇点终点。

    89520

    为什么需要使用Git客户端?

    每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务器。 其最大特色就是“分支”及“合并”操作非常快速、简便。...Git的一个重要特性就是对分布式开发的支持,我们看一个简单例子:假如你把开发任务从公司带回家,晚饭后突然有了灵感,要对代码进行修改,不巧家里的电脑不能连接到公司的文件库,你怎么下载要修改的文件?...即使你将文件用优盘带回去了,那么修改之后,又怎样提交?SVN 对这种情况没有解决方案,而 Git 可以!...因为 Git 在每个用户硬盘上都创建了完整的文件库,不需要、也不存在一个“中心服务器”,你只要能连接上任何一个团队成员的电脑,就能将代码提交到文件库去(有点像 P2P)。...最后看到绿色的 $ 就是命令行提示符。

    1.9K70

    【算法千题案例】每日LeetCode打卡——87.机器人能否返回原点

    “R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。 示例1: 输入: "UD" 输出: true 解释:机器人向上移动一次,然后向下移动一次。...它最终位于原点的左侧,距原点有两次 “移动” 的距离。我们返回 false,因为它在移动结束时没有返回原点。 提示: 两个列表的长度范围都在 [1, 1000]内。...93.50%的用户 内存消耗:62 MB,在所有 C# 提交中击败了9.90%的用户 ---- Java 方法:模拟 思路解析 我们只需按指令模拟机器人移动的坐标即可。...=x−1 如果指令是 RRR,则令 x=x+1x=x+1x=x+1 最后判断 (x,y)(x,y)(x,y) 是否为 (0,0)(0,0)(0,0) 即可。...60.41%的用户 内存消耗:38.4 MB,在所有 Java 提交中击败了57.40%的用户 复杂度分析 时间复杂度:O( n ) 空间复杂度:O(n) ---- 总结 今天是力扣算法题打卡的第八十七天

    65010

    git 入门教程之分支总览 原

    分支就是一条独立的时间线,既有分支,必有主干,正如一棵树谈到树枝,必有树干一样的道理.我们先前对git 的全部操作默认都是在主干上进行的,这个主干也是一种特殊的分支,名为 master 分支....基于分支上的操作,每一次 commit 都会提交一个新版本,并且新的 commit 指向原来的 commit,这来最新的 commit 就可以往前找,直到找到最初的commit.这就是 git 的时间线...当我们打算开辟新的时间线时,git 在当前 HEAD 指向的 master 分支的 commit 处新建一个 dev 分支.如果主角没有主动进入时间线的话,那么仍然处于 master 分支,进入的方法就是...当主角在 dev 分支独自闯荡干出一番事业时,决定回到故乡 master 分支,并将出门在外所学的本领带回家乡,建设美好家园.master 分支因为合并了 dev 分支,所以一下子增添了很多内容,家乡焕然一新...现在,我们在 dev 分支上奋笔疾书,先后提交两个版本后完成分支开发工作: # 查看当前文件列表 $ ls LICENSE README.md test.txt # 查看目标文件内容 $ cat

    37460

    30 分钟让你掌握 Git 的黑魔法

    commit 是如何表示的? 暂存区是什么?如何全部添加、一次添加、删除、查询和修正? 如何将暂存区的改动内容 commit?...检出覆盖: git checkout NAME(如果NAME是一个具体的提交哈希值时,git 会认为状态是“detached(分离的)”,因为 gitcheckout 过程中重要的一步是将 HEAD 指向那个分支的最后一次...分支上,理所应当; git checkout master 切换回 master 后,b分支的提交也不会带回 master 上,分支隔离; 分支上提交隔离的设计,可以让我们非常轻松的切换我们的修改,非常方便的做各类测试...: 我们可以修改 commit,比如新增或者删除某些文件改动; 操作选项 s: 我们可以将这个提交与其上一次的提交进行合并,并重新编辑提交信息; 操作选项 f: f 代表着"fixup"。...,这样可以将本地和远程的分支一一对应。

    56740

    这些沙雕中文项目真是我每天快乐的源泉!

    虽然说沙雕不分国界,国外也有很多有趣的项目,但是语言分,作为一个从小到大都看方块字的红领巾少年,将英语在充满浆糊的脑壳里翻译成汉语,本身的搞笑程度得下降 99%,还是中文有味儿~ 反正我是不会承认是我英语渣的原因...第一次看到这个的时候我惊了,这个清奇的脑回路,讲道理人都是有好奇心的,我无数次的想运行一下,最后把手绑起来才抑制住了这种想法......只需要一句话,万字长文带回家,一句话,你打不出吃亏,一句话,你打不出上当... ? 看,它的文章生成的是这么丝滑,引经据典,侃侃而谈,竟然还是这么的头头是道,夸的我本人都不好意思了......第一次见女装大佬还是 15 年在清华参加一个 ACM 的编程比赛,当时看到一个穿着女装的大佬,别问我我是怎么知道那是女装大佬的,谁家女孩子带着一脸的胡茬......可以从这个库里学习从克隆项目,创建分支,提交和同步修改,到合并分支的整套流程,一次即可熟悉 Git/GitHub 的使用... 当然你要事先准备好一张自己的女装照,纯纯的女孩子不可以呀... ?

    86820

    面试官:Git 如何撤回已 Push 的代码?问倒一大片。。。

    这不,前两天,一读者带回来的一个经典的面试题,今天,给大家分享一下,如果有跳槽找工作意向的朋友可以积累一下。 面试官问:Git 如何撤回已 Push 的代码?如果问你,你会吗?...但是呢,项目比较重要,没有经过测试的方案不能轻易上线,为了承接需求只能先把push上去的优化方案先下掉。 现在我的分支是这样的,我想要在本地和远程仓库中都恢复到help文档提交 的部分。...keep :#任何本地更改都将丢失,文件将恢复到所选提交的状态,但本地更改将保持不变。...打开push界面,虽然没有commit需要提交,需要点击Force Push,强推过去。 需要注意的是对于一些被保护的分支,这个操作是不能进行的。...需要自行查看配置,我这里因为不是master分支,所以没有保护。 可以看到,远程仓库中最新的commit只有我们的help文档 。在其上的三个提交都没了。

    39010

    Kafka 消息丢失与消费精确一次性

    如果在消息过程中发生了网络抖动,那么消息就会丢失;或发送的消息本身不符合要求,如大小超过Broker端的承受能力等(消息太大的情况在生产中实际遇到过,最后通过在发送前将消息分包,再依次发送,解决了该问题...解决该问题的方法就是:Producer要使用带回调通知的方法发送消息,即producer.send(msg, callback)。...解决Consumer端丢失消息的方法也很简单:将位移提交的时机改为消息处理完成后,确认消费完成了一批消息再提交相应的位移。...“unclean”的Broker竞选成为Leader; Kafka使用页缓存机制,将消息写入页缓存而非直接持久化至磁盘,将刷盘工作交由操作系统来调度,以此来保证高效率和高吞吐量。...),而使用带回调的producer.send(msg, callback)方法; 设置acks = all。

    81000

    Git 中文参考(五)

    例子 git revert HEAD~3 还原 HEAD 中第四个最后一次提交所指定的更改,并使用还原的更改创建一个新提交。...git revert -n master~5..master~2 将提交所做的更改从 master(包含)中的第五个最后一次提交恢复到 master(包含)中的第三个最后一次提交,但不要使用还原的更改创建任何提交...] [--] 描述 使用最后修改该行的修订版中的信息注释给定文件中的每一行。 (可选)从给定修订开始注释。 当指定一次或多次时,-L将注释限制为所请求的行。...例如,将显示归咎于同一提交的两行,但该提交的详细信息将仅显示一次。这样更有效,但可能需要读者保留更多状态。...例如,_ 原点…_ 是 origin…HEAD 的简写并询问“自从我从原点分支分叉后我做了什么?”

    1.4K10

    图解Git

    git commit. git commit files进行一次包含最后一次提交加上工作目录中文件快照的提交。并且文件被添加到暂存区域。...git checkout HEAD -- files回滚到复制最后一次提交。 约定 后文中以下面的形式使用图片。 ? 绿色的5位字符表示提交的ID,分别指向父节点。分支用橘色显示,分别指向特定的提交。...如果没有指定文件名,而是一个本地分支,那么将切换到那个分支去。同时把索引和工作目录切换到那个分支对应的状态。 ?...Merge merge 命令把不同分支合并起来。合并前,索引必须和当前提交相同。如果另一个分支是当前提交的祖父节点,那么合并命令将什么也不做。...如果用detached HEAD提交,那么最后一次提交会被the reflog for HEAD引用。

    84780
    领券