Git Patch使用: 生成,导入,解决冲突

1. Git Patch

git patch包括2中: 标准diff 和git format-patch

2. 生成patch

2.1 git diff

生成标准patch

最简单, 但是很多信息没有

git diff > my.diff

2.2 git format-patch

生成git专用patch

git format-patch -M master

format-patch中包涵diff, git commit, time等等

From c0b96dc1b770c45c49bd2945fe6fade8549f23b9 Mon Sep 17 00:00:00 2001
From: XXX <[email protected]>
Date: Wed, 20 May 2015 11:07:59 +0800
Subject: [PATCH] 134-Video: Suport XXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXx

Ticket:Bug-6850

Change-Id: I9984b500b06d60d92b9392fdb3b74ff7cca9857b
Signed-off-by: XXX <[email protected]>
---
 AndroidManifest.xml                             |  4 +--
 src/com/android/videoplayer/MainActivity.java | 35 ++++++++++++++++++-------
 2 files changed, 27 insertions(+), 12 deletions(-)

diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index bc0383e..f893901 100755
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.videoplayer"
-    android:versionCode="089"
-    android:versionName="0.8.9">
+    android:versionCode="090"
+    android:versionName="0.9.0"

2.3 两种patch的比较:

兼容性:很明显,git diff生成的Patch兼容性强。如果你在修改的代码的官方版本库不是Git管理的版本库,那么你必须使用git diff生成的patch才能让你的代码被项目的维护人接受。

除错功能:对于git diff生成的patch,你可以用git apply --check 查看补丁是否能够干净顺利地应用到当前分支中;如果git format-patch 生成的补丁不能打到当前分支,git am会给出提示,并协助你完成打补丁工作,你也可以使用git am -3进行三方合并,详细的做法可以参考git手册或者《Progit》。从这一点上看,两者除错功能都很强。

版本库信息:由于git format-patch生成的补丁中含有这个补丁开发者的名字,因此在应用补丁时,这个名字会被记录进版本库,显然,这样做是恰当的。因此,目前使用Git的开源社区往往建议大家使用format-patch生成补丁。

3. 导入patch

3.1 diff

git apply  my.diff

3.2 format-patch

git am 001Fix.patch

时间: 2024-10-08 05:25:17

Git Patch使用: 生成,导入,解决冲突的相关文章

git gitlab 使用 提交代码解决冲突

1.更改完代码后,git push 发生错误 注: 此时,使用 git pull: 更新代码,git 会自动merge不同的更新, a.  如果git 自动merge成功,再进行 git push操作就会成功. b.  如果git 自动merge失败,使用git status可以查看哪个文件 merge失败,需要手动修改冲突地方,再进行git add git commit操作,之后再git push But,这种方法提交后,就会在提交记录里显示 merge: ******************

git入门:创建合并分支 解决冲突 分支管理策略

分支创建与合并 理解:相当于创建多一个与现在一模一样的平行时空 在这基础上继续干活 但其实并不会影响到当前时空 ,合并时再决定A时空并入B时空 还是B 时空并入A和空 查看分支 git branch; 创建分支 git branch '分支名' 切换分支 git checkout '分支名' 创建加切换 git checkout -b '分支名' 合并某分支到当前分支 git merge '分支名' 删除分支 git branch -d '分支名 解决冲突 假设现在有主分支(master) 和

git patch生成和使用

前言 由于工作需要,基于源码进行改动的时候经常需要在git分支上打各种各样的patch来解决各种各样的问题.这里总结两种生成patch和打patch的方法. git diff 这种是Unix下的patch,在git分支下通过git diff命令生成.具体命令如下: git diff > diff.patch 对于git diff生成的patch,可以用如下两条命令进行merge: git apply diff.patch 或者 patch -p1 < diff.patch git format

Android Studio如何使用Git提交代码到GitHub和OsChina并解决冲突

由于本人喜爱Git,那就介绍Git,,如何和在GitHub和Oschina拉取和提交项目,并且你会学会如何解决冲突问题!!博主还是那个图片控!! 准备工作 git下载地址:Git下载 oschina注册地址:Oschina github注册地址:GitHub 1. 下载git软件 2. 注册GitHub账号和Oschina账号 3. 完成后如图1.1 和图1.2 图1.1 Git配置成功标志 图1.2 GitHub与本地AS关联成功 进行到此,才能进行下面的操作,中间我忽略了很多,那些确实很基础

git解决冲突插件之Beyond Compare

Beyond Compare主要作用: 1. 可以比较文件.文件夹的差异: 2. 将一个文件或文件夹的两个不同版本进行变更合并,生成一个输出. 基于以上两个特性,可以将beyond compare集成到git内,作为解决冲突的利器,具体配置如下,找到.gitconfig文件(Windows下在C:\Users\用户名目录)添加以下内容: [diff] tool = bc4 [difftool "bc4"] cmd = "\"F:/BeyondCompare/beyo

git解决冲突方式

Git解决冲突 安装beyond compare 4 2.配置git对比工具 #difftool 配置 git config --global diff.tool bc4 git config --global difftool.bc4.cmd "\" C:/Program Files/Beyond Compare 4/bcomp.exe\" \"$LOCAL\" \"$REMOTE\"" git difftool HEAD

git之解决冲突

前面几次使用git,一直对于冲突的这个问题不是很理解,感觉有些时候就会产生冲突,在此记录一下解决冲突的流程 1.git bash上面冲突显示 2.在idea上面可以看到冲突的文件 3.去解决冲突 4.采取冲突的合并的办法,对于不冲突的文件,我们进行合并,但是对于有冲突的,我们选择一个 进行合并 二.关于git的小知识点 1.git checkout pom.xml,当我们对pom里面的文件进行了修改,这个可以可以不提交,直接可以回滚到我们初到这个分支 2.随时编写的时候,注意自己的分支问题 3.

git 解决冲突

$ git push origin master To /home/fan/repo/code/../a.git/ ! [rejected] master -> master (fetch first) push失败,版本落后,提示要fetch $ git fetch origin $ git merge origin/master Auto-merging a.txt CONFLICT (content): Merge conflict in a.txt 发生冲突 选择修改,解决冲突 git

git patch生成方法

先把修改commit掉,然后生产修改patch给提交代码的同事,具体操作步骤如下: 修改代码的同事: git format-patch al821_xxx origin/al821_xxx 会生成:0001-HQ00656135-xxx-al821_xxx.patch这样的patch文件 把这个patch给提交代码的同事 提交代码的同事,执行: git am 0001-HQ00656135-xxx-al821_xxx.patch 然后可以检查这个提交记录有没有问题,如果没有问题 执行git pu