git做diff和做patch

转自: https://blog.csdn.net/ezhchai/article/details/79387452

1.比较修改之间的差异

git diff不加参数即默认比较工作区与暂存区

git diff --cached [<path>...]比较暂存区与最新本地版本库(本地库中最近一次commit的内容)

git diff HEAD [<path>...]比较工作区与最新本地版本库。如果HEAD指向的是master分支,那么HEAD还可以换成master

git diff commit-id [<path>...]比较工作区与指定commit-id的差异

git diff --cached [<commit-id>] [<path>...]比较暂存区与指定commit-id的差异

git diff [<commit-id>] [<commit-id>]比较两个commit-id之间的差异

例如,比较工作区和暂存区的main.cpp文件的差异。

$ git diff main.cpp

diff --git a/main.cpp b/main.cpp

index 57a5778..24604db 100644

--- a/main.cpp

+++ b/main.cpp

@@ -1,6 +1,7 @@

#include <iostream>

using namespace std;

int main(){

-    cout<<"Hello, World!"<<flush;

+      int a, b;

+    cout<<"Hello, World!"<<endl;

    return 0;

}

\ No newline at end of file


2.制作补丁

git diff还可以制作补丁文件,在其他机器上对应目录下使用 git apply patch 将补丁打上即可

git diff > patchpatch的命名是随意的,不加其他参数时作用是当我们希望将我们本仓库工作区的修改拷贝一份到其他机器上使用

git diff --cached > patch是将我们暂存区与版本库的差异做成补丁

git diff --HEAD > patch是将工作区与版本库的差异做成补丁

git diff filename > patch将单个文件做成一个单独的补丁

git apply patch 应用补丁。

应用补丁之前我们可以先检验一下补丁能否应用,git apply --check patch 如果没有任何输出,那么表示可以顺利接受这个补丁。

使用git apply --reject patch将能打的补丁先打上,有冲突的会生成.rej文件,此时可以找到这些文件进行手动打补丁。


其他git diff的文章:

https://www.git-tower.com/learn/git/ebook/cn/command-line/advanced-topics/diffs

https://www.jianshu.com/p/80542dc3164e

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git c...
    LOVE_晴天阅读 6,839评论 0 10
  • 1,查看所有远程分支:%git branch -r 2, 拉取远程分支并创建本地分支git checkout -...
    will666阅读 6,296评论 0 18
  • 1. GIT命令 git init在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个re...
    江边一蓑烟阅读 4,247评论 0 0
  • 去年9月当听到要参加网络学习,而且还是为时一年时间,心中有些许不满,但更多的是无奈。但当我真正接触到青椒课程,开启...
    陕县1779田俊红阅读 3,339评论 0 0