Git 命令集 实践整理
文章命令摘抄于《GitHub入门与实践》一书、网上搜集和实践整理。
生成ssh key
$ ssh-keygen -t rsa -C "your_email@example.com"
查看ssh目录的文件
$ ls -al ~/.ssh
设置git昵称和邮箱
$ git config --global user.name "昵称"
$ git config --global user.email "邮箱"
命令
基本操作
初始化仓库
git init
查看仓库的状态
git status
向暂存区中添加文件
git add
暂存区是提交之前的一个临时区域
保存仓库的历史记录
git commit
记述一行提交信息
git commit -m "here enter description"
记述详细提交信息
git commit
执行后编辑器会启动
提交格式:
- 第一行:一行文字简述提交的更改内容
- 第二行:留空
- 第三行:记述更改的原因和详细的内容
编辑器启动后按 i 进入编辑状态,写完按 Esc 输入:wq(w写入q退出)
中止提交
编辑状态下想终止提交
还没有输入过内容
- 输入
:q
退出
- 输入
已经有内容了,但不想保存
- 输入
:q!
退出
- 输入
查看提交日志
git log
显示简短的提交日志
git log --pretty=short
显示一行的提交日志
git log --pretty=oneline
只显示指定目录、文件的日志
git log README.md
显示文件的改动
对比文件的上一个提交,清晰显示改动的地方
git log -p readme.md
查看工作树和暂存区的区别
git diff
查看工作树和最新提交的差别
在执行git commit
命令之前先执行git diff HEAD
,可以查看本次提交和上次提交之间的差别
git diff HEAD
分支的操作
显示分支列表
分支前面有*
号这表示我们当前所在的分支
git branch
创建分支
创建branch-name
的分支,并切换到该分支下
git checkout -b branch-name
另外一种创建写法
git branch branch-b # 创建branch-b分支
git checkout branch-b # 切换到branch-b分支
切换分支
git checkout branch-b
重命名分支
git branch -m old_name new_name
切换回上一个分支
git checkout -
合并分支
默认是:
--ff
fase forward 快速合并,不会生成新的提交
不使用快速合并
- step 1 先切换回要合并到的主分支
$ git checkout master
- step 2 然后合并 branch-b 分支
$ git merge --no-ff branch-b
--no-ff
的效果就像下面这样,并会生成一个新的提交。
图解4种git合并分支方法
压缩合并
将待合并的分支内容压缩成一个新的提交
$ git merge --squash branch-b
删除分支
删除分支,删除前主分支的提交中有合并分支的提交,会丢失分支信息,内容不会丢失。
$ git merge -D branch-b
以图表方式查看分支提交日志
$ git log --graph
回溯(时光机、后悔药)
$ git reset --hard d6f34b7c6d72fdc4e3d01fe6fb2a430278b913ff
$ git reset --hard d6f34b # 或者更简短一些,唯一即可
回退到上一个版本
$ git reset --hard HEAD^
撤销上一个提交(commit)
这个操作会撤销到上一个的本地提交,但是会保留其提交的修改内容,作用就是以便修正内容之后重新提交。
$ git reset HEAD~
查看仓库操作日志
在仓库执行过的操作日志都会被记录下来,包括乘坐时光机的操作
$ git reflog
放弃修改
放弃本地修改
未使用git add
命令的文件或目录,可以通过下面的命令来进行
$ git checkout -- filename // filename换成文件名或者文件,放弃单个
$ git checkout . // 放弃本地所有的修改
已使用git add
,但未使用git commit
命令的文件或目录
下面命令会回到add之前,文件会保留并不会删除
$ git reset HEAD filename // 放弃添加单个文件
$ git reset HEAD . // 放弃所有
还有一种情况,发现上面的操作都无法完全清除本地的改动,可以使用下面的命令。
原因是,这些清不掉的文件都是新添加的文件,上面的操作只对改动原文件有效。
git clean -df # 删除新添加的文件
已使用git add
&git commit
的文件,撤销此次commit
git reset --hard commit_id // 直接还原到指定的commit记录,所以commit会被删除
放弃添加
撤销add操作
仍会保留改动的内容
$ git reset
版本tag
$ git tag -a v0.1 -m "version 0.1 released" 1094adb
查看tag版本
$ git show v1.0
同步tag到远程仓库
$ git push origin --tags
删除tag版本
$ git tag -d v1.0
拉取远程分支到本地
$ git fetch origin branchname:branchname # 拉取branchname到本地branchname分支
强制忽略文件
如果已存在版本库里面的文件,是无法加入到.gitignore
忽略列表里面的。
可以使用,下面的命令进行强制忽略
git update-index --assume-unchanged <files>
解除忽略命令
git update-index --no-assume-unchanged <files>
Git 命令集 实践整理相关推荐
- Git命令集十五——拉取命令
2019独角兽企业重金招聘Python工程师标准>>> Git命令集十五--拉取命令 pull命令用于从其他仓库或本地分支拉取更改到当前分支. 1.git pull 将远程仓库的更改 ...
- Git命令集之八——提交命令
2019独角兽企业重金招聘Python工程师标准>>> Git命令集之八--提交命令 1.git commit --message <msg> 将使用add命令更新后的修 ...
- Git命令集十三——快照操作
2019独角兽企业重金招聘Python工程师标准>>> Git命令集十三--快照操作 Git工具中提供了一个stash命令,这个命令的作用是创建快照.快照主要的用途是将当前未更新到缓 ...
- Git命令集十四——抓取命令
2019独角兽企业重金招聘Python工程师标准>>> Git命令集十四--抓取命令 Git中提供的fetch命令用于将远端的更新抓取到本地仓库中. 1.git fetch < ...
- Git命令集之六——查看仓库状态
2019独角兽企业重金招聘Python工程师标准>>> Git命令集之六--查看仓库状态 1.git status 查看当前仓库状态,是否有未缓存的文件或者是否有未提交的修改. 2. ...
- Git命令教程(自己整理的知识)
(1)创建版本库 1. pwd命令用于显示当前目录.在我的电脑上.这个仓库位于 /c/Users/25165/Desktop/learngit . 2.通过git init命令把这个目录变成Git可以 ...
- 冰河亲自整理的Git命令汇总,悄悄努力,然后惊艳所有人
大家好,我是冰河~~ Git目前是各大互联网公司使用的版本控制工具,进大厂,必须要学会Git的基本使用.这不,最近就有很多小伙伴私信我:冰河,可以帮我整理下Git的使用命令吗?网上的太零散了,买书看又 ...
- 520,冰河亲自整理的Git命令汇总升级版,悄悄努力,然后惊艳所有人(升级版)
大家好,我是冰河~~ Git目前是各大互联网公司使用的版本控制工具,进大厂,必须要学会Git的基本使用.这不,最近就有很多小伙伴私信我:冰河,可以帮我整理下Git的使用命令吗?网上的太零散了,买书看又 ...
- 【笔记】【一文解决】Git 命令行/资料『整理』
整理:按功能归类常用命令行 参考: ⭐️ 廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/896043488029600 Git命令总结(缩减GitHub仓库大小, ...
最新文章
- 【JVM性能调优】jstack和线程dump分析
- python odoo_odoo python 使用缓存
- Aix5.3安装Bash Shell环境
- Android开发笔记(一百三十七)自定义行为Behavior
- php中的正则表达式相关例题,实例学习PHP中的正则表达式
- 如何完全卸载oracle和删除oracle在注册表中的注册信息
- 计算机对教育的重要性 英语作文,关于教育的英语作文 教育重要性英语作文!
- iOS 苹果手机客户端微信支付调起失败--无法调起微信的原因
- 三代UHS超高速SD卡
- 最适合发朋友圈的句子
- PHP 输出图像 imagegif 、imagejpeg 与 imagepng 函数(五)
- 孙陶然:有能力的第二个标准是业绩好
- webdriver高级应用- 浏览器中新开标签页(Tab)
- github.com/stretchr/testify/suite
- JAVA纺织代加工车间生产状态监测系统计算机毕业设计Mybatis+系统+数据库+调试部署
- [JS权威指南笔记] 第1章-第3章
- 关于emgucv的书_EMGUCV基础精编版
- python读取两路ip摄像头实时直播监控
- 笔记:CSS伪类选择器hover link visited active
- Python毕业设计论文计算机专业毕业论文基于Python实现的作业查重系统[包运行成功]
热门文章
- Solidworks输出Autocad的DWG格式乱码怎么办
- Linux目录结构FHS
- redis-集群分片
- UVA11549计算器谜题
- hdu3415单调队列
- C语言-运算符优先级及注意事项
- 【数字信号处理】相关函数 ( 相关函数性质 | 相关函数最大值 | 自相关函数最大值 | 互相关函数最大值 | 能量有限信号的相关函数在 m 趋近无穷时为 0 )
- 【Groovy】闭包 Closure ( 闭包中调用 Groovy 脚本中的方法 | owner 与 delegate 区别 | 闭包中调用对象中的方法 )
- 【DBMS 数据库管理系统】数据仓库中 数据追加 ( 时标方法 | DELTA 文件法 | 前后映像文件法 | 日志文件法 )
- 【JetPack】ViewBinding 视图绑定组件 ( 启用模块 | 视图绑定定制 | 绑定类名称生成规则 | 绑定类字段生成规则 | 绑定类获取根视图 | 绑定类获取布局组件 )