git笔记

设置仓库用户名

bash 复制代码
#全局配置,

#项目单独配置,写入项目中.git/config
git config --global user.name "name"
git config --global user.email "xxxxxxxxxx@qq.com"

vscode 不显示远程分支

bash 复制代码
git remote update origin --prune

撤销上一次提交

bash 复制代码
git log
git reset --hard  需要回退的版本的hash值
git push origin HEAD --force

修改上一次提交的commit信息

bash 复制代码
git commit --amend
#或
git commit --amend -m "msg"

git 合并某个提交commit到指定的分支上

git cherry-pick 62ecb3

将一个分支的某个提交合并到另一个分支

git cherry-pick 命令可以将某个分支上的特定提交应用到当前分支上。

找到提交的哈希值
bash 复制代码
git log 源分支
Cherry-pick 提交

使用 cherry-pick 命令将该提交合并到当前分支。

bash 复制代码
git cherry-pick 提交的哈希值
解决冲突

解决冲突后,添加解决冲突后的文件:

git add 解决冲突后的文件

继续 cherry-pick 过程:
bash 复制代码
git cherry-pick --continue

链接:https://blog.csdn.net/qq_41883423/article/details/140776493

合并某个分支上的一系列commits

在一些特性情况下,合并单个commit并不够,你需要合并一系列相连的commits。这种情况下就不要选择cherry-pick了,rebase 更适合。还以上例为例,假设你需要合并feature分支的commit76cada ~62ecb3 到master分支。

首先需要基于feature创建一个新的分支,并指明新分支的最后一个commit:

git checkout -bnewbranch 62ecb3

1

然后,rebase这个新分支的commit到master(--ontomaster)。76cada^ 指明你想从哪个特定的commit开始。

git rebase --ontomaster 76cada^

1

得到的结果就是feature分支的commit 76cada ~62ecb3 都被合并到了master分支。

常用

列出所有本地分支

bash 复制代码
 git branch

列出所有远程分支

bash 复制代码
 git branch -r

删除本地分支xxx

bash 复制代码
 git branch -D xxx

管理远程仓库的列表

bash 复制代码
 git remote

切换分支xxx(切换远程分支,自动关联远程分支)

bash 复制代码
 git checkout xxx

撤销暂存区中某个文件的修改

bash 复制代码
 git checkout xxx.c

撤销暂存区中所有修改

bash 复制代码
 git checkout .

新建并切换分支xxx

bash 复制代码
 git checkout -b xxx

从远程仓库拉取最新的提交,但不会自动合并到当前分支。

bash 复制代码
git fetch

从远程仓库拉取最新的提交并合并当前分支

bash 复制代码
 git pull

所以有人说git pull = git fetch + git merge

生成最近的1次commit的patch

bash 复制代码
 git format-patch HEAD^

将名字为0001-limit-log-function.patch的patch打上

bash 复制代码
 git am 0001-limit-log-function.patch   

临时保存分支修改的内容就像是,切换分支使用,git stash可以保存多次修改内容

bash 复制代码
 git stash

恢复最近一次stash的修改的内容

bash 复制代码
 git stash pop

恢复之前多次stash中的具体那次的保存修改内容

bash 复制代码
 git stash apply    xxx

列出当前工作区stash的所有记录

bash 复制代码
 git stash list

删除stash的所有记录

bash 复制代码
 git stash clear

回退你已提交具体的commitID,并将commit的修改内容放回到暂存区

bash 复制代码
 git reset --hard commitID

清空工作目录下编译出来的中间产物

bash 复制代码
 git clean -df

重命名分支

bash 复制代码
 git branch -m oldNme newName

生成某个区间的patch

bash 复制代码
 git format-patch   commitID..commitID  > lsdkall.patch

制作历史提交具体某次的补丁

bash 复制代码
 git format-patch commitID -1

对比出修改了哪些内容

bash 复制代码
git diff

生成某个区间的patch

bash 复制代码
 git format-patch 97010ef958a502c60d7080212bba353af32d2057..f2f35bbfc16b384f447a30dd0b240637331fd132 > lsdkall.patch

生成最后第N次提交产生的补丁

bash 复制代码
 git format-patch -N

回退之前的某个具体版本xxxx

bash 复制代码
 git reset --hard xxxx

显示一个提交的详细信息。

bash 复制代码
 git show 

显示某个具体commit ID提交的详细信息。

bash 复制代码
 git show commitID

显示历史提交记录

bash 复制代码
 git log

将文件添加到Git的暂存区。

bash 复制代码
 git add  .

从暂存区和工作目录中删除文件

bash 复制代码
 git rm xx.c

将暂存区内容添加到本地仓库中

bash 复制代码
 git commit

commit内容分段提交

bash 复制代码
 git commit -s 分段提交内容

ctrl + o

回车

ctrl + x

对之前最近一次没合入仓库的commit 提交进行再次修改可以是文件内容也可以是commit 信息

bash 复制代码
 git commit --amend

将本地提交推送到远程仓库

bash 复制代码
 git push

有时候本地代码和远程仓库有冲突的时候,就需要强推到仓库

bash 复制代码
 git push -f

显示工作目录和暂存区的状态。

bash 复制代码
 git status

显示历史提交记录

bash 复制代码
 git log

从log历史记录中查找关键字touchpanel

bash 复制代码
 git log --grep="touchpanel"

仅显示指定John作者相关的提交

bash 复制代码
git log --author="John"

仅显示指定提交者John相关的提交

bash 复制代码
 git log --committer="John"

查看某个时间段的提交记录

bash 复制代码
 git log --after="2020-9-23 00:00:00" --before="2020-9-23 23:59:59"

查看具体某个目录drivers/media/i2c下的修改历史提交记录

bash 复制代码
git log --oneline  drivers/media/i2c

从仓库中删除已提交的某个文件

bash 复制代码
 git reset -f xxx.txt

查看所有标签

bash 复制代码
git tag

根据patch id来打标签,一般是出版本的人打tag

bash 复制代码
 git tag -a v0.9 85fc7e7  

展示标签内容

bash 复制代码
git show v1.0 

删除标签

bash 复制代码
git tag -d v1.1   

将A分支提交内容移动到B分支

bash 复制代码
 git checkpick 

下载github上的提交

bash 复制代码
git clone xxx.git

另外推荐两个Linux上有两个查看git log历史记录的工具是gitk,tig

gitk是图形化查看git提交的目录

tig是命令去看历史提交的目录

https://mp.weixin.qq.com/s?__biz=MzUyNDUyMDQyNQ==\&mid=2247483996\&idx=1\&sn=d9767803f44199f122b3793c9a044fdb\&chksm=fa2d5cdacd5ad5cc6c0be50ffb896ccde7099cfabcd5d32ac18c727dbb0c7e2ffeb7067888cd\&cur_album_id=3313713335250436101\&scene=189#wechat_redirect

相关推荐
xiaoyalian1 小时前
R语言绘图过程中遇到图例的图块中出现字符“a“的解决方法
笔记·r语言·数据可视化
Red Red3 小时前
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务
网络·笔记·学习·安全·web安全
贰十六3 小时前
笔记:Centos Nginx Jdk Mysql OpenOffce KkFile Minio安装部署
笔记·nginx·centos
知兀4 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
醉陌离5 小时前
渗透测试笔记——shodan(4)
笔记
LateBloomer7775 小时前
FreeRTOS——信号量
笔记·stm32·学习·freertos
legend_jz5 小时前
【Linux】线程控制
linux·服务器·开发语言·c++·笔记·学习·学习方法
Komorebi.py5 小时前
【Linux】-学习笔记04
linux·笔记·学习
fengbizhe6 小时前
笔试-笔记2
c++·笔记