这篇内容比较干,也是开发工作中最常用管理代码托管分支的工具,下面是我常用的到git命令
列出所有本地分支
$ git branch
列出所有远程分支
$ git branch -r
删除本地分支xxx
$ git branch -D xxx
管理远程仓库的列表
$ git remote
切换分支xxx(切换远程分支,自动关联远程分支)
$ git checkout xxx
撤销暂存区中某个文件的修改
$ git checkout xxx.c
撤销暂存区中所有修改
$ git checkout .
新建并切换分支xxx
$ git checkout -b xxx
从远程仓库拉取最新的提交,但不会自动合并到当前分支。
$ git fetch
从远程仓库拉取最新的提交并合并当前分支
$ git pull
所以有人说git pull = git fetch + git merge。具体后面会单独出篇文章来说下
生成最近的1次commit的patch
$ git format-patch HEAD^
将名字为0001-limit-log-function.patch的patch打上
$ git am 0001-limit-log-function.patch
在项目开发中,基本都会遇到这样的情况:本来你在自己的分支上愉快的开发功能A,但是突然加了一个优先级很高的需求B或者有bug需要先修复掉。但这个时候,你新做的功能A刚开发到一半,总不能先提交A再开发B,或者直接拉个新分支切过去吧?(可以倒是可以,但是不推荐),这个时候 我们就要用git stash
临时保存分支修改的内容就像是,切换分支使用,git stash可以保存多次修改内容
$ git stash
恢复最近一次stash的修改的内容
$ git stash pop
恢复之前多次stash中的具体那次的保存修改内容
$ git stash apply xxx
列出当前工作区stash的所有记录
$ git stash list
删除stash的所有记录
$ git stash clear
回退你已提交具体的commitID,并将commit的修改内容放回到暂存区
$ git reset --hard commitID
清空工作目录下编译出来的中间产物
$ git clean -df
重命名分支
$ git branch -m oldNme newName
生成某个区间的patch
$ git format-patch commitID..commitID > lsdkall.patch
制作历史提交具体某次的补丁
$ git format-patch commitID -1
对比出修改了哪些内容
$ git diff
生成某个区间的patch
$ git format-patch 97010ef958a502c60d7080212bba353af32d2057..f2f35bbfc16b384f447a30dd0b240637331fd132 > lsdkall.patch
生成最后第N次提交产生的补丁
$ git format-patch -N
回退之前的某个具体版本xxxx
$ git reset --hard xxxx
显示一个提交的详细信息。
$ git show
显示某个具体commit ID提交的详细信息。
$ git show commitID
显示历史提交记录
$ git log
将文件添加到Git的暂存区。
$ git add .
从暂存区和工作目录中删除文件
$ git rm xx.c
将暂存区内容添加到本地仓库中
$ git commit
commit内容分段提交
$ git commit -s 分段提交内容
ctrl + o
回车
ctrl + x
对之前最近一次没合入仓库的commit 提交进行再次修改可以是文件内容也可以是commit 信息
$ git commit --amend
将本地提交推送到远程仓库
$ git push
有时候本地代码和远程仓库有冲突的时候,就需要强推到仓库
$ git push -f
显示工作目录和暂存区的状态。
$ git status
显示历史提交记录
$ git log
从log历史记录中查找关键字touchpanel
$ git log --grep="touchpanel"
仅显示指定John作者相关的提交
$ git log --author="John"
仅显示指定提交者John相关的提交
$ git log --committer="John"
查看某个时间段的提交记录
$ git log --after="2020-9-23 00:00:00" --before="2020-9-23 23:59:59"
查看具体某个目录drivers/media/i2c下的修改历史提交记录
git log --oneline drivers/media/i2c
从仓库中删除已提交的某个文件
$ git reset -f xxx.txt
查看所有标签
git tag
根据patch id来打标签,一般是出版本的人打tag
$ git tag -a v0.9 85fc7e7
展示标签内容
git show v1.0
删除标签
git tag -d v1.1
将A分支提交内容移动到B分支
$ git checkpick
下载github上的提交
git clone xxx.git
另外推荐两个Linux上有两个查看git log历史记录的工具是gitk,tig
gitk是图形化查看git提交的目录
tig是命令去看历史提交的目录
这里有本git电子书需要的自取,关注公众号[Linux随笔录],后台回复关键字git,即可获取
作者潘小帅, 是一名Linux底层爱好者,平时写写技术原创文章,徒步,旅游,看电影的爱好,喜欢我的文章可以点赞收藏+关注,感谢你的支持,微信公众号【Linux随笔录】
本文由 mdnice 多平台发布
版权归原作者 Linux随笔录 所有, 如有侵权,请联系我们删除。