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

git rebase 重建清爽的历史提交

遇到这样的情况,就需要让开发人员把commit压缩一下,简单来说就是将多个commit合并为一个,这样看起来就比较整洁了,那git rebase是如何做到的呢?...git rebase 作用git rebase 命令有两个作用:将当前分支的更改重新应用到目标分支上,即变基。对当前分支的历史提交进行更改,这里称之为交互式变基。...变基变基具体来说就是:如果你正在一个分支上工作,想要将这些更改合并到主分支master上,但是主分支上已经有了新的提交,此时使用 rebase 可以让当前分支的更改应用到最新的主分支上。...如下图交互式变基交互式变基时,可以使用不同的命令来修改提交历史:p, pick 提交> :使用提交r, reword 提交> :使用提交,但修改提交说明e, edit 提交> :使用提交,进入 shell...具体操作如下:执行 git rebase -i HEAD~n ,n为你想要合并的提交数量,例如我输入git rebase -i HEAD~6 ,会出现下图的交互页面。

22410

git log 查看 当前分支的 提交历史

大家好,又见面了,我是你们的朋友全栈君 git log 查看 当前分支的 提交历史 在提交了若干更新之后,想回顾下提交历史,可以使用 git log 命令查看 默认不用任何参数的话,git log 会按提交时间列出所有的更新...看到了吗,每次更新都有一个 SHA-1 校验和、作者的名字 和 电子邮件地址、提交时间,最后缩进一个段落显示提交说明。...git log 有许多选项可以帮助你搜寻感兴趣的提交,接下来我们介绍些最常用的。...我们常用 -p 选项 展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新: $ git log -p -2 此外,还有许多摘要选项可以用,比如 --stat,仅简要的显示 文件 增改行数统计,...$ git log –stat –author 仅显示指定作者相关的提交。

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

    Git-基本命令大全

    ] # 显示指定文件相关的每一次diff $ git log -p [file] # 显示过去5次提交 $ git log -5 --pretty --oneline # 显示所有提交过的用户,按提交次数排序...的差异 $ git diff --cached [file] # 显示工作区与当前分支最新commit之间的差异 $ git diff HEAD # 显示两次提交之间的差异 $ git diff [first-branch...显示当前分支的最近几次提交 $ git reflog 八、远程同步 # 下载远程仓库的所有变动 $ git fetch [remote] # 显示所有远程仓库 $ git remote -v # 显示某个远程仓库的信息...# 生成一个可供发布的压缩包 $ git archive git rebase [-i | --interactive] [options] [--exec ] [--onto 的修改 git checkout -p #用来比较两个分支间的差异内容,并提供交互式的界面来选择进一步的操作 git checkout --orphan <branch

    1.4K60

    Git从某个分支的某次提交新建分支拉取代码

    最近有个项目比较乱,新功能没有做完,develop 分支不能合并到主干,又有新的需求需要修改,但是 master 主干分支的代码又不够新。...只能从 develop 分支的某一次提交上拉取代码,到本地分支,然后进行修改,再提交合并到 master 分支。...Git 拉取某一次提交的代码版本到本地分支: git checkout -b 分之名 远程仓库的commitId 示例: git checkout -b w3h5 af161ecbd13eff1630c14f84a7395d46f5d18888...如果你是第一次参与这个项目,操作步骤如下: 首先克隆分支,将代码拉下来: git clone https://github.com/ideshun/project.git 然后进行代码版本的拉取: git... checkout -b w3h5 af161ecbd13eff1630c14f84a7395d46f5d18888 说明:每个平台的说法不同,这里的 commitId 也就是 提交 SHA ,我使用的

    9.4K20

    Merge vs Rebase

    Interactive Rebase Interactive rebase使你有机会在将提交移动到新分支时更改提交。这比自动rebase更强大,因为它提供了对分支提交历史的完全控制。...由于rebase导致全新的提交,Git会认为你的master分支的历史与其他人的历史不同。...我们在Interactive Rebasing部分看到了第一个选项的示例。当你只需要修复最后几次提交时,后一种选择很好。例如,以下命令仅针对最后3次提交的交互式rebase。...在大多数情况下,这比通过merge与远程分支同步更直观。 默认情况下,git pull命令执行合并,但你可以通过向其传递--rebase选项来强制它与远程分支rebase集成。...如果你更喜欢提交的干净,消除不必要合并的线性历史记录,那么你在继承另一分支的更改时应该使用git rebase 而不是git merge。

    1.7K21

    Git 帮助手册

    e 选项来手动选择需要添加的行,执行 git diff --cached 将会显示哪些行暂存了哪些行只是保存在本地了。...(master)$ git rebase -i HEAD~2 在你执行了交互式 rebase 的命令 (interactive rebase command) 后,你将在你的编辑器里看到类似下面的内容...(master)$ git rebase -i @{u} 这会产生一次交互式的 rebase (interactive rebase), 只会列出没有推 (push) 的提交 (commit), 在这个列表时进行...任何时候你想结束整个 rebase 过程,回来 rebase 前的分支状态,你可以做: (my-branch)$ git rebase --abort # 查看信息 显示工作路径下已修改的文件: git...status 显示与上次提交版本文件的不同: git diff 显示提交历史: # 从最新提交开始,显示所有的提交记录(显示 hash, 作者信息,提交的标题和时间) $ git log # 显示某个用户的所有提交

    4.3K30

    经典45个git使用技巧与场合,专治不会合代码。

    你就可以用下面的命令显示当前HEAD上的最近一次的提交(commit): (main)$ git show 或者 $ git log -n1 -p 我的提交信息(commit message..., 你需要用 e 选项来手动选择需要添加的行,执行 git diff --cached 将会显示哪些行暂存了哪些行只是保存在本地了。...awesome feature" 如果你想要更多的控制, 想要保留时间戳, 你需要做交互式rebase (interactive rebase): (my-branch)$ git rebase...(main)$ git rebase -i HEAD~2 在你执行了交互式 rebase的命令(interactive rebase command)后, 你将在你的编辑器里看到类似下面的内容:...(main)$ git rebase -i @{u} 这会产生一次交互式的rebase(interactive rebase), 只会列出没有推(push)的提交(commit), 在这个列表时进行

    1.5K20

    45 个 Git 操作场景,专治不会合代码

    你就可以用下面的命令显示当前HEAD上的最近一次的提交(commit): (main)$ git show 或者 $ git log -n1 -p 我的提交信息(commit message)写错了 如果你的提交信息...e 选项来手动选择需要添加的行,执行 git diff --cached 将会显示哪些行暂存了哪些行只是保存在本地了。...awesome feature" 如果你想要更多的控制, 想要保留时间戳, 你需要做交互式rebase (interactive rebase): (my-branch)$ git rebase -i...(main)$ git rebase -i HEAD~2 在你执行了交互式 rebase的命令(interactive rebase command)后, 你将在你的编辑器里看到类似下面的内容: pick...(main)$ git rebase -i @{u} 这会产生一次交互式的rebase(interactive rebase), 只会列出没有推(push)的提交(commit), 在这个列表时进行reorder

    1K10

    45个 GIT 经典操作场景,专治不会合代码

    你就可以用下面的命令显示当前HEAD上的最近一次的提交(commit): (main)$ git show 或者 $ git log -n1 -p 我的提交信息(commit message)写错了 如果你的提交信息...你需要用 e 选项来手动选择需要添加的行,执行 git diff --cached 将会显示哪些行暂存了哪些行只是保存在本地了。... feature" 如果你想要更多的控制, 想要保留时间戳, 你需要做交互式rebase (interactive rebase): (my-branch)$ git rebase -i main 如果没有相对的其它分支...(main)$ git rebase -i HEAD~2 在你执行了交互式 rebase的命令(interactive rebase command)后, 你将在你的编辑器里看到类似下面的内容: pick...(main)$ git rebase -i @{u} 这会产生一次交互式的rebase(interactive rebase), 只会列出没有推(push)的提交(commit), 在这个列表时进行reorder

    1.1K10

    45 个Git经典操作场景,专治不会合代码

    你就可以用下面的命令显示当前HEAD上的最近一次的提交(commit): (main)$ git show 或者 $ git log -n1 -p 我的提交信息(commit message)写错了...你需要用 e 选项来手动选择需要添加的行,执行 git diff --cached 将会显示哪些行暂存了哪些行只是保存在本地了。...feature" 如果你想要更多的控制, 想要保留时间戳, 你需要做交互式rebase (interactive rebase): (my-branch)$ git rebase -i main...(main)$ git rebase -i HEAD~2 在你执行了交互式 rebase的命令(interactive rebase command)后, 你将在你的编辑器里看到类似下面的内容: pick...(main)$ git rebase -i @{u} 这会产生一次交互式的rebase(interactive rebase), 只会列出没有推(push)的提交(commit), 在这个列表时进行reorder

    81020

    【版本管理 | Git】Git rebase 命令最佳实践!确定不来看看?

    希望大佬带带) 该文章收录专栏 [✨— 《深入解析机器学习:从原理到应用的全面指南》 —✨] git rebase 名称 介绍 git rebase 将一个分支的提交应用到另一个分支上...git rebase 将当前分支的提交应用到目标分支上,将当前分支的提交添加到目标分支的顶部。...Git 的 rebase 操作是用于将一个分支的提交移动到另一个分支上的操作。它可以改变提交历史、合并代码以及整理分支结构。...下面是对 Git rebase 操作的详细解释: 基本语法:git rebase 分支> 分支> 是你想要将当前所在分支中的提交应用到其上的目标分支。...使用场景: 合并代码:当你想要将一些特定功能或修复添加到主干(如 master 分支)之前,你可以使用 rebase 来将这些修改放置在主干之前,并保持一个更清晰直观的提交历史。

    39410
    领券