文章命令摘抄于《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 -

合并分支

默认是:--fffase 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 命令集 实践整理相关推荐

  1. Git命令集十五——拉取命令

    2019独角兽企业重金招聘Python工程师标准>>> Git命令集十五--拉取命令 pull命令用于从其他仓库或本地分支拉取更改到当前分支. 1.git pull 将远程仓库的更改 ...

  2. Git命令集之八——提交命令

    2019独角兽企业重金招聘Python工程师标准>>> Git命令集之八--提交命令 1.git commit --message <msg> 将使用add命令更新后的修 ...

  3. Git命令集十三——快照操作

    2019独角兽企业重金招聘Python工程师标准>>> Git命令集十三--快照操作 Git工具中提供了一个stash命令,这个命令的作用是创建快照.快照主要的用途是将当前未更新到缓 ...

  4. Git命令集十四——抓取命令

    2019独角兽企业重金招聘Python工程师标准>>> Git命令集十四--抓取命令 Git中提供的fetch命令用于将远端的更新抓取到本地仓库中. 1.git fetch < ...

  5. Git命令集之六——查看仓库状态

    2019独角兽企业重金招聘Python工程师标准>>> Git命令集之六--查看仓库状态 1.git status 查看当前仓库状态,是否有未缓存的文件或者是否有未提交的修改. 2. ...

  6. Git命令教程(自己整理的知识)

    (1)创建版本库 1. pwd命令用于显示当前目录.在我的电脑上.这个仓库位于 /c/Users/25165/Desktop/learngit . 2.通过git init命令把这个目录变成Git可以 ...

  7. 冰河亲自整理的Git命令汇总,悄悄努力,然后惊艳所有人

    大家好,我是冰河~~ Git目前是各大互联网公司使用的版本控制工具,进大厂,必须要学会Git的基本使用.这不,最近就有很多小伙伴私信我:冰河,可以帮我整理下Git的使用命令吗?网上的太零散了,买书看又 ...

  8. 520,冰河亲自整理的Git命令汇总升级版,悄悄努力,然后惊艳所有人(升级版)

    大家好,我是冰河~~ Git目前是各大互联网公司使用的版本控制工具,进大厂,必须要学会Git的基本使用.这不,最近就有很多小伙伴私信我:冰河,可以帮我整理下Git的使用命令吗?网上的太零散了,买书看又 ...

  9. 【笔记】【一文解决】Git 命令行/资料『整理』

    整理:按功能归类常用命令行 参考: ⭐️ 廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/896043488029600 Git命令总结(缩减GitHub仓库大小, ...

最新文章

  1. 【JVM性能调优】jstack和线程dump分析
  2. python odoo_odoo python 使用缓存
  3. Aix5.3安装Bash Shell环境
  4. Android开发笔记(一百三十七)自定义行为Behavior
  5. php中的正则表达式相关例题,实例学习PHP中的正则表达式
  6. 如何完全卸载oracle和删除oracle在注册表中的注册信息
  7. 计算机对教育的重要性 英语作文,关于教育的英语作文 教育重要性英语作文!
  8. iOS 苹果手机客户端微信支付调起失败--无法调起微信的原因
  9. 三代UHS超高速SD卡
  10. 最适合发朋友圈的句子
  11. PHP 输出图像 imagegif 、imagejpeg 与 imagepng 函数(五)
  12. 孙陶然:有能力的第二个标准是业绩好
  13. webdriver高级应用- 浏览器中新开标签页(Tab)
  14. github.com/stretchr/testify/suite
  15. JAVA纺织代加工车间生产状态监测系统计算机毕业设计Mybatis+系统+数据库+调试部署
  16. [JS权威指南笔记] 第1章-第3章
  17. 关于emgucv的书_EMGUCV基础精编版
  18. python读取两路ip摄像头实时直播监控
  19. 笔记:CSS伪类选择器hover link visited active
  20. Python毕业设计论文计算机专业毕业论文基于Python实现的作业查重系统[包运行成功]

热门文章

  1. Solidworks输出Autocad的DWG格式乱码怎么办
  2. Linux目录结构FHS
  3. redis-集群分片
  4. UVA11549计算器谜题
  5. hdu3415单调队列
  6. C语言-运算符优先级及注意事项
  7. 【数字信号处理】相关函数 ( 相关函数性质 | 相关函数最大值 | 自相关函数最大值 | 互相关函数最大值 | 能量有限信号的相关函数在 m 趋近无穷时为 0 )
  8. 【Groovy】闭包 Closure ( 闭包中调用 Groovy 脚本中的方法 | owner 与 delegate 区别 | 闭包中调用对象中的方法 )
  9. 【DBMS 数据库管理系统】数据仓库中 数据追加 ( 时标方法 | DELTA 文件法 | 前后映像文件法 | 日志文件法 )
  10. 【JetPack】ViewBinding 视图绑定组件 ( 启用模块 | 视图绑定定制 | 绑定类名称生成规则 | 绑定类字段生成规则 | 绑定类获取根视图 | 绑定类获取布局组件 )