1 git patch操作
1.1 git diff比较
使用git diff用于显示当前工作区与暂存区或提交历史之间的差异,如果使用它生成patch,则需要使用git apply命令来引入patch
1.2 git patch打包
使用git format-patch生成patch
bash
# 打包最近的一个patch:
$git format-patch HEAD^
# 打包最近的两个patch
$git format-patch HEAD^^
# 打包最近的三个patch
$git format-patch HEAD^^^
# 打包最近的n个patch
$git format-patch -n
# 打包版本n1与n2之间的patch
$git format-patch -n1 -n2
# 某次提交以后的所有patch,不包含此次提交,两者等价
$ git format-patch -s 5d7c81a2b
$ git format-patch 5d7c81a2b
打包好后会生成0001-XXX.patch 这样格式的patch,使用git am(自动提交) /git apply 来merge patch即可。
1.3 git diff和git format-patch的区别
git diff和git format-patch是Git中用于生成补丁和差异的命令,它们之间的主要区别如下:
- git diff:git diff命令用于显示当前工作区与暂存区或提交历史之间的差异。可以显示文件的修改内容,包括添加、删除和修改的行。可以使用不同的选项和参数来控制差异的显示方式,比如显示具体的文件差异、忽略空白字符等。git diff通常用于查看尚未暂存或提交的更改,以帮助你了解当前工作区的状态和修改内容。
- git format-patch:git format-patch命令用于生成补丁文件(patch files),它将一系列提交转换为可应用的补丁文件。git format-patch会为每个提交创建一个单独的补丁文件,每个补丁文件包含了该提交的所有修改内容。生成的补丁文件一般以.patch扩展名结尾,可以通过邮件或其他方式传递给他人,以便他们应用这些补丁到他们的代码库中。补丁文件包含了修改的具体内容,包括添加、删除和修改的行,以及与之相关的提交信息。git format-patch命令可以使用不同的选项和参数来控制生成补丁文件的方式,比如指定要处理的提交范围、生成多个补丁文件等。
总结来说:git diff用于显示当前工作区与暂存区或提交历史之间的差异,用于查看尚未暂存或提交的更改。git format-patch用于将提交转换为补丁文件,每个补丁文件包含了一个提交的所有修改内容,用于传递和应用补丁。这两个命令在不同的场景下有不同的用途,根据你的需求选择适合的命令来查看差异或生成补丁。
2 git分支操作
2.1 基本操作
bash
2.1 基本操作
# 在master分支下保证当前代码与线上同步。
$git pull origin master
# 查看远程分支
$git branch -r
# 查看本地和远程的所有分支
$git branch -a
2.2 新建 / 切换分支
bash
#新建分支
$git branch <分支名>
#切换到新建的分支
$git checkout/switch <分支名>
#优化操作,创建分支的同时再切换到该分支
$git checkout -b <分支名>
2.3 提交分支到远端
bash
# 把本地分支推到远端,让远端也有一个你的分支,用来后面提交你的代码
$git push origin <分支名>
2.4 合并分支
bash
# 合并分支,在当前分支下将 <分支>合并到当前分支,合并冲突后手动解决冲突
# 解决后使用git commit -m "Merge branchname into current branch"来完成了分支的合并操作
# 如果有冲突则需要先解决冲突再最后提交,其中
# 介于 <<<<<<<HEAD 和 ======= 之间的内容是代码块1中内容,
# 介于 ======= 和 >>>>>>> 之间的内容是代码块2中内容。
$git merge <分支名>
2.5 删除分支
bash
# 删除分支,注意,只有当该分支的修改已经合并到其他分支时,才能被安全地删除。如果分支的修改尚未合并,可以使用强制删除的命令
git branch -d <分支名>
# 分支的修改尚未合并,强制删除分支
git branch -D <分支名>
2.6 重命名本地分支
bash
$git branch -m <oldbranch> <newbranch>