用git发patch

http://blog.youkuaiyun.com/richardysteven/article/details/6701156


1. fetch gt tree

git clone <url>


2. git brach

显示 那个branch


3. 

git log

显示 log

git show SHA!

显示某个commit的具体改动


4. 同步tree

git pull


5

git commit

git commit --amend -a   修改最近的commit


6. 

git format-patch -2 -o ~/patch/

输出最近的两个patch,到patch目录下


git format-patch SHA1...SHA2 -o ~/patch

SHA1到SHA2之间的commit 做patch. 也不完全是,注意 “...”的用法

注意不包括SHA2


git format-patch HEAD...HEAD~9 -o ~/patch 

当前branch的最后9个commit来做patch.


git format-patch local ^master -o ~/patch

在local上,但是不在master分支上的 做patch.

这个实际上就是生成一个patch set 发到upstream上。


git format-patch -1 --subject-prefix="PATCH V1 net" -o ~/patch

可以在每个patch标题上加上前缀,多的时候很管用


git format-patch --cover-letter -1 -o ~/patch

多生成一个说明文件


7.

git send-email --to xxx@xxx --to xxx@xx --cc xxx@xxx --bcc xx@xx ~/patch 


8. apply a patch

git am --abort

git am patch.file


9. git config file

 [sendmail]
       smtpencryption = tls
       smtppass       = xxxx
       smtpserver     = imap.linux.com
       smtpuser       = username
       smtpserverport = 143

Git 中,`patch` 是一种用于传输和应用代码变更的机制。它可以通过 `git diff` 或 `git format-patch` 命令生成,并通过 `git apply` 或 `git am` 命令进行应用。 ### 1. 生成补丁 #### 使用 `git diff` 生成补丁 `git diff` 可以生成两个提交之间的差异内容,输出为一个 `.patch` 文件。该方式适用于简单的补丁需求。 ```bash git diff > my_changes.patch ``` 如果需要比较特定分支与当前分支的差异,可以使用如下命令: ```bash git diff master..feature-branch > feature_branch_changes.patch ``` #### 使用 `git format-patch` 生成补丁 `git format-patch` 会生成符合邮件格式的补丁文件,适合用于代码审查或提交到开源项目。 ```bash git format-patch master -o patches/ ``` 这将生成一系列补丁文件,每个提交对应一个 `.patch` 文件,并保存在 `patches/` 目录中[^4]。 --- ### 2. 应用补丁 #### 使用 `git apply` `git apply` 是一种直接将补丁文件应用到当前工作目录的方式,不会自动创建提交。 ```bash git apply my_changes.patch ``` 如果补丁文件是通过 `git format-patch` 生成的,则需要先将其转换为普通 diff 格式,或者使用 `git am` 来处理。 #### 使用 `git am` `git am` 专门用于应用通过 `git format-patch` 生成的补丁文件,并会自动创建提交。 ```bash git am < patches/0001-my-changes.patch ``` 如果补丁中包含多个提交,可以依次应用所有补丁文件: ```bash git am --directory=patches/ ``` --- ### 3. 冲突解决 在应用补丁时,可能会遇到冲突。Git 会提示冲突文件,并标记冲突区域。 解决冲突后,使用以下命令继续应用补丁: ```bash git add <resolved-file> git am --continue ``` 如果希望跳过某个补丁,可以使用: ```bash git am --skip ``` 若需中止整个补丁应用过程: ```bash git am --abort ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值