首页 > 其他分享 >git 补丁

git 补丁

时间:2023-04-24 11:48:24浏览次数:35  
标签:git format -- 补丁 am patch commit

生成补丁:

git format-patch -N N 代表最近几次的提交

应用补丁 

git am  会将所有信息合入 包括提交人 和 提交日志 修改的文件加入存储队列 git log 可以看到提交的修改

git apply   只包括文件本身的修改 修改的文件 在暂存区 可用 git status 查看

 

在git am 某个PATCH时报如下 错误:

"fatal: previous rebase directory .git/rebase-apply still exists but mbox given."

一般来说之前执行git am失败过,需要执行git am --abort

git format-patch

$ git format-patch HEAD^                 #生成最近的1次commit的patch
 
$ git format-patch HEAD^^               #生成最近的2次commit的patch
 
$ git format-patch HEAD^^^              #生成最近的3次commit的patch
 
$ git format-patch HEAD^^^^                  #生成最近的4次commit的patch
 
$ git format-patch <r1>..<r2>                                              #生成两个commit间的修改的patch(包含两个commit. <r1>和<r2>都是具体的commit号)
 
$ git format-patch -1 <r1>                                                   #生成单个commit的patch
 
$ git format-patch <r1>                                                       #生成某commit以来的修改patch(不包含该commit)
 
$ git format-patch --root <r1>               #生成从根到r1提交的所有patch

git am

$ git apply --stat 0001-limit-log-function.patch         # 查看patch的情况
 
$ git apply --check 0001-limit-log-function.patch        # 检查patch是否能够打上,如果没有任何输出,则说明无冲突,可以打上
 
(注:git apply是另外一种打patch的命令,其与git am的区别是,git apply并不会将commit message等打上去,打完patch后需要重新git add和git commit,而git am会直接将patch的所有信息打上去,而且不用重新git add和git commit,author也是patch的author而不是打patch的人)
 
$ git am 0001-limit-log-function.patch                                # 将名字为0001-limit-log-function.patch的patch打上
 
$ git am --signoff 0001-limit-log-function.patch                  # 添加-s或者--signoff,还可以把自己的名字添加为signed off by信息,作用是注明打patch的人是谁,因为有时打patch的人并不是patch的作者
 
$ git am ~/patch-set/*.patch             # 将路径~/patch-set/*.patch 按照先后顺序打上
 
$ git am --abort                                                                   # 当git am失败时,用以将已经在am过程中打上的patch废弃掉(比如有三个patch,打到第三个patch时有冲突,那么这条命令会把打上的前两个patch丢弃掉,返回没有打patch的状态)
 
$ git am --resolved                                                             #当git am失败,解决完冲突后,这条命令会接着打patch

(322条消息) 如何用git命令生成Patch和打Patch(git format-Patch和git am)_git format-patch -1_良知犹存的博客-CSDN博客

标签:git,format,--,补丁,am,patch,commit
From: https://www.cnblogs.com/wanglongjiang/p/17348938.html

相关文章

  • Git最全内容整理,这一篇就够了
    关注我了解更多Python技术知识,带你一路“狂飙”到底!上岸大厂不是梦!你使用过Git吗?也许你已经使用了一段时间,但它的许多奥秘仍然令人困惑。Git是一个版本控制系统,是任何软件开发项目中的主要内容。通常有两个主要用途:代码备份和代码版本控制。你可以逐步处理代码,在需要回滚到......
  • docker部署gitlab CI/CD (二)终篇:部署gitlab runner和添加gitlab-ci.yml文件 终极踩坑版
    网上教程很多,但断断续续,先不说大部分都是只截取片段,让人云里雾里,不会的看不懂,懂的不需要看,根据步骤跑不起来不说,改了一堆,完全不解释为什么,也分不清是官方要求还是作者自己夹带的私货。痛定思痛,抛弃任何教程,根据报错实时改进,于2023年4月24日完成此篇。官方文档:https://docs.g......
  • 有了这些 AI 工具,健康和财富兼得「GitHub 热点速览」
    新的一周,又有什么新的AI应用呢?在AI专场,这次是文本生语音和双语对话模型,前者能解决你的语音问题,后者则是清华开源的模型,能让你搞个自己的类ChatGPT对话助手。此外,还有升级版的MiniGPT-4搞定基于图片的文字工作,像是诗歌生成、图片描述等等。不过,也有借着机器学习优化搞钱......
  • 常用的Linux命令(git通用)
    1)、cd:改变目录。2)、cd..回退到上一个目录,直接cd进入默认目录3)、pwd:显示当前所在的目录路径。4)、ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。5)、touch:新建一个文件如touchindex.js就会在当前目录下新建一个index.js文件。6)......
  • Google Chrome安装Mathjax插件在Github渲染LaTex公式
    打开chrome应用商店,搜索MathJax3PluginforGithub,安装插件,在阅读Github上的Markdown文件时会自动渲染LaTex公式。渲染前:渲染后:图片来源在Edge上没有找到在Github渲染LaTex公式的插件qwq......
  • git提交本地master分支到远程main分支
    可以使用以下命令将本地master分支提交到远程main分支:首先,需要将本地master分支与远程存储库进行同步。可以使用以下命令将更新的数据从远程存储库拉取到本地:gitfetchorigin切换到本地master分支:gitcheckoutmaster将本地master分支合并到主分支main:g......
  • docker部署gitlab-runner
    要求在注册runner之前,您必须首先:将其安装在与安装GitLab的服务器不同的服务器上获取令牌:对于共享运行器,让管理员转到GitLab管理区域并选择Overview>Runners对于grouprunner,转到CI/CD>Runners对于projectrunner,转到Settings>CI/CD并展开Runners部分生成配......
  • Git 将代码推送到多个远程仓库
    如果使用Git管理代码(例如使用git命令或GitGUI客户端),可以将代码推送到多个远程仓库,包括Gitee和GitHub。具体做法是:首先在GitHub上创建一个新的空仓库。将GitHub仓库的URL添加为一个新的远程仓库,可以为这个远程仓库指定一个别名如github。例如,如果你的GitH......
  • git将本地默认分支推送到远程默认分支
    gitpush-uoriginmain命令用于将本地默认分支(这里假设为main)的代码推送到远程仓库中,并将其与远程默认分支关联起来(通常为origin/main)。具体操作步骤如下:在本地仓库中提交你的代码到默认分支main:$gitadd.$gitcommit-m"xxx"将本地默认分支main推送到关联......
  • git本地仓库与远程仓库进行关联
    gitremoteaddorigin<远程仓库地址>命令用于将本地仓库与远程仓库进行关联,建立远程仓库的别名为origin。其中<远程仓库地址>是你在GitHub或其他Git仓库网站上创建的仓库的地址。具体操作步骤如下:在GitHub或其他Git仓库网站上创建一个新仓库。在本地仓库目录......