标签(linux): git

笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流

切换分支

git checkout

撤销对文件的修改

git checkout --file.ext

  • checkout一个文件和带文件路径git reset非常像,除了它更改的是工作目录而不是缓存区。不像提交层面的checkout命令,它不会移动HEAD引用,也就是你不会切换到别的分支上去
  • 如果你缓存并且提交了checkout的文件,它具备将某个文件回撤到之前版本的效果。注意它撤销了这个文件后面所有的更改,而git revert命令只撤销某个特定提交的更改

撤销对文件的修改

[root@git test]# git status
On branch about
Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)modified:   index.htmlno changes added to commit (use "git add" and/or "git commit -a")
[root@git test]# git checkout -- index.html
[root@git test]# git status
On branch about
nothing to commit, working directory clean

git reset

  • --soft 缓存区和工作目录都不会被改变
  • --mixed 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
  • --hard 缓存区和工作目录都同步到你指定的提交
    虽然在调用时加上 --hard选项可以令git reset成为一个危险的命令(译注:可能导致工作目录中所有当前进度丢失!),但本例中工作目录内的文件并不会被修改。不加选项地调用git reset并不危险——它只会修改暂存区域

git reset HEAD~2

执行命令后:

reset命令的影响

文件层操作

  • 当检测到文件路径时,git reset将缓存区同步到你指定的那个提交。比如,下面这个命令会将倒数第二个提交中的foo.py加入到缓存区中,供下一个提交使用。
  • git reset HEAD~2 foo.py
  • 运行git reset HEAD foo.py 会将当前的foo.py从缓存区中移除出去,而不会影响工作目录中对foo.py的更改
  • --soft、 --mixed和--hard对文件层面的git reset毫无作用,因为缓存区中的文件一定会变化,而工作目录中的文件一定不变。

reflog

  • git reflog命令分析你所有分支的头指针的日志来查找出你在重写历史上可能丢失的提交

总结

命令 作用域 常用情景
git reset 提交层面 版本回滚,,在私有分支上舍弃一些没有提交的更改
git reset 文件层面 将文件从缓存区中移除
git checkout 提交层面 切换分支或查看旧版本
git checkout 文件层面 舍弃工作目录中的更改
git revert 提交层面 在公共分支上回滚更改
git revert 文件层面 (没有)

Git分支高级管理[四]相关推荐

  1. git分支基本管理规范

    1.master 分支 master 为主分支,也是用于部署生产环境的分支,确保master分支稳定性, master 分支一般由develop以及hotfix分支合并,任何时间都不能直接修改代码 2 ...

  2. git如何切换分支_拜托,不要再问我Git分支如何使用

    今天来讲讲我使用Git分支的一些经验,记录一下,希望对大家有帮助. 阐述 在平常开发中,一般都会对应三种环境,本地环境.测试环境.线上环境.开发的基本流程都是先在本地环境开发好,再把代码发布到测试环境 ...

  3. 使用VSTS的Git进行版本控制(四)——在Visual Studio中管理分支

    使用VSTS的Git进行版本控制(四)--在Visual Studio中管理分支 可以从web版Team Services Git repo 的Branches视图中管理工作.定制视图来跟踪最关注的分 ...

  4. Git系列教程(四)——git分支管理

    Git 分支管理 一.创建与合并分支 二.删除分支 三.分支冲突 四.分支管理策略 五.Bug分支 六.总结 一.创建与合并分支 什么是分支?有了分支,你创建了一个属于你自己的分支,别人看不到,还继续 ...

  5. Git远程分支管理(四)

    本系列为个人学习Git参照廖雪峰老师的笔记 本文内容:Git远程分支管理 参考笔记: https://www.liaoxuefeng.com/wiki/896043488029600 文章目录 3 G ...

  6. 【git】(task2)Git分支管理及工具使用

    学习总结 当我们在两个分支中对同一个文件的同一个部分进行了不同的修改,Git就没有办法顺利的合并他们,会在合并的时候产生合并冲突.比如我们在issue102分支和master分支下对issue102. ...

  7. 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...

  8. git 分支管理策略 与 物理实现 --author by阮一峰 小鱼

    -------------------------下面是阮一峰博士的git branch 逻辑结构图示---------------------------------------------- 如果 ...

  9. 介绍一个成功的 Git 分支模型——终于知道如何管理git分支了(好文章!!强烈建议看本文的英文原文)

    本文翻译转载自:https://www.oschina.net/translate/a-successful-git-branching-model 英文原文在2020年3月5日有更新(强烈建议看英文 ...

最新文章

  1. sudo: unable to resolve host ubuntu提示的解决
  2. java生成随机数保留数点后两位
  3. python真假命题_python中的命题演算
  4. 字符串题目 1 --------判断两个字符串是否为旋转词
  5. CVPR2021 FGVC8植物病理识别挑战赛,冠军方案解读
  6. 神秘买家6亿元拍走,乐视大厦究竟归谁?
  7. python生成10个随机数字符串_python生成随机数、随机字符串
  8. 联想 DXL 系列对象存储
  9. ftp服务器文件查找,ftp服务器中查找文件
  10. PostgreSQL shapefile 导入导出
  11. 专利分析的方法和流程
  12. 密码应用安全性评估实施要点之三密钥管理要求与实现要点
  13. synchronized与ReentrantLock的介绍、使用、适合场景及比较
  14. Visio中添加《include》包含符号
  15. RBP as a streaming server(一)
  16. 虚拟服务器怎样做网站,怎么用虚拟主机做网站
  17. 知衣科技:夫妻搭档,创业是件骨子里的事
  18. Mac pro 突然没有办法按住shift打出大写S
  19. Java 枚举异常的类型
  20. 【EmTech China 2018】不容错过的科技盛典!(附萌新临时充电手册)

热门文章

  1. 各种测序基础知识汇总
  2. php中按引用传递参数,如何通过PHP中的引用传递可变参数的参数?
  3. C语言 | 基于STM32的MPU6050模块程序(主程序)
  4. GetClientRect()和GetWindowRect()
  5. android 输入光标修改颜色_2.2 输入数值与文本
  6. php调http接口,2步教你解决http协议php接口调用
  7. 小程序云服务器选什么系统好,小程序云服务器操作系统选择
  8. wps如何自己制作流程图_自己如何制作APP软件
  9. html表格的表头怎么合并单元格,使用tableGrob合并表头单元格
  10. c++17(26)-数组、二维数组的指针、指向数组的指针、指向数组的指针的指针