如果给所有软件列出一个排行榜的话,那么Git定会名列前茅。Git对于代码项目的管理是具有划时代意义的,向Linus致敬,不但写出了可以与Windows争锋的Linux系统,还设计实现了如此强大的版本管理工具。

当我了解Git后,真后悔没有早一点学习它,那样写论文就不用反反复复的修修改改了,能省去多少无用功呀。

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.

Git 和SVN

Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

Git 与 SVN 区别点:

  • Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
  • Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
  • Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
  • Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

git 初始化

任意选择一个文件夹,本文选择新建一个文件夹。使用 git init创建一个空的 Git 仓库或重新初始化一个已存在的仓库。

Git本地操作

Git最基本的操作

图中的index指的稍后所说的暂存区,Objects值得稍后所说的对象区。

新建文件dota.txt。输入内容:dota中最强的英雄是影魔

  1. git status查看状态。此时文件在工作区
  2. git add 通过这个命令将文件放入暂存区
  3. git commit 通过这个命令将文件放入对象区
  4. git push 通过这个命令将文件push到远端的服务器,比如github。
  5. 在远端的服务器查看提交的文件。

Git进阶操作-rebase

官方解释的比较繁琐,这里只说比较通用的用法。以某一个commit作为基准进行rebase。下面看具体的例子。

继续上文中的例子,加入我又玩了一段时间dota,发现影魔不是最厉害的,于是修改文件为:dota中最强的英雄是电魂。通过上面的操作将修改的文件放入对象区。

又玩了一段时间,发现电魂不是最厉害的,于是修改文件为:dota中最强的英雄是卡尔。类似操作,放入对象区。

继续dota,发现电魂很菜,不想要这个commit了,这个时候就可以rebase了。这里只是演示,实际工作中可能在不知道的情况下,忽然又插入了一个commit,这个时候又需要以新的commit作为基准,那么rebase就是不得不做的事情了。

  1. git log-3 查看最近的3个commit。
  2. git rebase-i0d3023a 使用第一个commit作为基准。
  3. 因为要删除电魂的commit,所以将pick修改位d,如果其他需求根据需要修改。
  4. wq 保存,有冲突。
  5. 修改冲突文件。修改后的内容是:dota中最强的英雄是卡尔
  6. git add.
  7. git rebase--continue
  8. git log查看修改结果,发现电魂的commit已经被成功移除了。

常用指令

公众号

git rebase用法_Git入门实战相关推荐

  1. git rebase用法_Git:Clone别人的代码之后push到自己码云上失败的解决办法

    最近也是刚开始使用gitee,比较生疏.场景是这样的: clone了朋友的一份代码到自己的本地,然后自己想把它保存到自己的gitee 私有仓库上,就在gitee上面创建了一个私有的仓库,然后多次pus ...

  2. git merge用法_Git 基本命令 merge 和 rebase,你真的了解吗?

    前言 Git 中的分支合并是一个常见的使用场景. 仓库的 bugfix 分支修复完 bug 之后,要回合到主干分支,这时候两个分支需要合并: 远端仓库的分支 A 有其他小伙伴合入了代码,这时候,你需要 ...

  3. git rebase用法

    开发任务分叉到两个不同分支,又各自提交了更新 整合分支最容易的方法是 merge 命令. 它会把两个分支的最新快照(C3 和 C4)以及二者最近的共同祖先(C2)进行三方合并,合并的结果是生成一个新的 ...

  4. git 切换分支_git 入门教程之分支总览

    分支就是一条独立的时间线,既有分支,必有主干,正如一棵树谈到树枝,必有树干一样的道理.我们先前对git 的全部操作默认都是在主干上进行的,这个主干也是一种特殊的分支,名为 master 分支. 无论是 ...

  5. git rebase和git merge的用法

    http://softlab.sdut.edu.cn/blog/subaochen/2016/01/git-rebase%E5%92%8Cgit-merge%E7%9A%84%E7%94%A8%E6% ...

  6. git rebase 命令 常用_git命令之 git rebase 常用

    git rebase 命令的功能很强大, 在<git 权威指南>一书里,改变提交(commit)的顺序,书中教了一种很复杂的方法,运用了git reset ... git cherry-p ...

  7. VSCode + git代码托管:入门到实战

    VSCode + git代码托管:入门到实战 使用VSCode代码开发工具(IDE开发工具的一种),该代码开发软件功能,常用举例如下: 可以实现代码开发: 代码提示等等插件安装: Git代码托管:修改 ...

  8. git rebase的两种用法(最全)

    rebase的两种用法 用法一: 合并当前分支的多个commit记录 1. 找到想要合并的commit, 使用rebase -i 2. 进入Interact交互界面 3.使用s命令 合并到上一个com ...

  9. [转]【Git】rebase 用法小结

    https://www.jianshu.com/p/4a8f4af4e803 本文主要参考 https://git-scm.com/docs/git-rebase rebase在git中是一个非常有魅 ...

最新文章

  1. 计量注册师考试一些关于期限、时间、机构的总结
  2. 2020 前端开源领域技术展望
  3. javascript面向对象包装类Class的类库解析
  4. 强大的DataGrid组件[7]_自定义DataGrid——Silverlight学习笔记[15]
  5. JS构造map/dict结构
  6. HTML5 文件域+FileReader 分段读取文件(四)
  7. 第四十八期:你太菜了,竟然不知道Code Review?
  8. DTS-SHOP微信小程序多店铺商城平台java源码
  9. java生成动态验证码_java动态生成验证码
  10. EXCEL 两列名字 如何快速查看缺少了哪些人名
  11. L1-062 幸运彩票 (15 分)-PAT 团体程序设计天梯赛 GPLT
  12. 微信小程序,标签云效果:自定义颜色,并随机显示不同颜色
  13. IT项目实施管理办法
  14. 2019最新python下载安装详解
  15. 电商系统购物车流程图
  16. 统信UOS桌面操作系统安装教程
  17. Camera2缩略图预览功能的实现
  18. 不知道如何写好作文?写好作文的十大技巧赶紧收好
  19. 台式计算机和笔记本电脑的相同点,与笔记本电脑相比,台式机有哪些优势?
  20. STM32之DAC音频播放

热门文章

  1. java的地位_Java地位无可动摇的12个原因
  2. Python二级笔记(13)
  3. weblogic启动慢
  4. ubuntu搭建php开发环境记录
  5. 测试:脱离VS2010使用自动化测试时出现 6DA215C2-D80D-42F2-A514-B44A16DCBAAA 错误
  6. CloudDBA新功能上线--SQL过滤/限制/防火墙
  7. Node.js meitulu图片批量下载爬虫1.051
  8. day5-shutil模块
  9. Golang Clearing slice
  10. 【python】编程学习练习题-2