如果给所有软件列出一个排行榜的话,那么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 改了一段代码不想要了_初识Git相关推荐

  1. git 改了一段代码不想要了_想要壁纸不收费吗?简简单单用python代码实现

    requests模块介绍 首先是requests模块,这是一个模拟浏览器请求的模块,我们可以通过它来获取网页上的信息,比如百度: 爬取代码非常简单,从上到下可能只需要写30行左右就能完成,但重要的是分 ...

  2. git 改了一段代码不想要了_Git - 如何将master/其他分支上修改代码不提交直接移到新建分支...

    背景介绍: 有时候, 拿到需求, 就直接在master分支上开撸了, 其实也只是初步看下. 结果一来二去修改完毕, 完成了需求, 但是此时都在master分支, 提交必然是不可以的. 还是要新建分支, ...

  3. git下载,上传代码到GitLab ; Untracked files (use “git add <file>...“ to include in what will be committed)

    环境:Windows10 git版本:git-2.12.2.2-64-bit.exe 安装git,安装成功文件夹上右键,菜单中会有git GUI here 及git Bash here选项 使用: 1 ...

  4. 程序员写了段代码,自称完美! 网友: 我现在还在改你的Bug

    现在的互联网技术在飞速进步着,加之有一些程序员确实是喜欢编程,长久如此,很多程序员的技术也得到了一个质的飞跃,于是都想写出一个堪称没有Bug的代码! 这不,近日又有一位程序员发帖称: 可以看到,这是一 ...

  5. 想用代码改变世界?先用好Git和Github!

    什么是Git? 关于什么是Git,当你打开百度去搜索,你可能会得到这样一个答案: Git,全称是分布式版本控制系统,Git 通常在编程中会用到,并且Git支持分布式部署,可以有效.高速的处理从很小到非 ...

  6. git 忽略文件_想用代码改变世界?先用好Git和Github!

    什么是Git? 关于什么是Git,当你打开百度去搜索,你可能会得到这样一个答案: Git,全称是分布式版本控制系统,Git 通常在编程中会用到,并且Git支持分布式部署,可以有效.高速的处理从很小到非 ...

  7. 【CTF】web01对方不想和你说话,并向你扔了一段代码

    分析这段代码 首先了解每个函数的功能和用法! 函数Extract: 定义和用法 extract() 函数从数组中将变量导入到当前的符号表. 该函数使用数组键名作为变量名,使用数组键值作为变量值.针对数 ...

  8. Git:改变世界的一次代码提交

    摘要:如果选Linux社区历史上最伟大的一次 Git 代码提交,那一定是 Git 工具项目本身的第一次代码提交. 吾诗已成.无论大神的震怒,还是山崩地裂,都不能把它化为无形! -- 奥维德<变形 ...

  9. Stack Overflow上最火的一段代码竟然有Bug

    作者 | Andreas Lundblad 译者 | 弯月     责编 | 欧阳姝黎 出品 | CSDN(ID:CSDNnews) 2010年的某一天,我忙中偷闲去Stack Overflow上赚声 ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task07. 合并两个有序链表
  2. 首次看清体内所有癌症转移灶,深度学习方法立大功!中国留学生一作论文登《细胞》封面...
  3. linux服务器后台运行程序
  4. LTE网元间控制面协议
  5. 面试必备算法题集之「动态规划」Ⅰ
  6. 项目质量管理:质量与质量管理概念
  7. Tomcat8.01及nginx-1.8.1安装
  8. mysql8.0.13 32位下载_MySQL8.0下载-MySQL数据库8.0下载 v8.0.11官方版(32位/64位)--pc6下载站...
  9. 动画函数优化,为任意元素添加任意多个属性
  10. 关于 MySQL 8.0 新特性“隐藏索引”的一点思考
  11. Android SharedPreferences数据库
  12. Node.js相关——CommonJS规范
  13. C语言如何实现寻找峰值函数,findpeaks 寻找峰值函数
  14. html给页面整体添加左右边距_css div 网页的页面边距怎么控制
  15. Java集合可分成什么类_java.util包含Java中大量工具类、集合类等,例如Arrays、List、Set等。...
  16. 动手开发一个有用的 ABAP ALV 工具 - 查看指定用户的 ABAP 传输请求试读版
  17. PDF文档用什么软件打开?
  18. 【网络安全】CSRF漏洞详细解读
  19. C语言中变量的作用域和生存期
  20. python算式运算题目_python的四则运算练习

热门文章

  1. 在asp.net 中应用POST传递和接收XML文件以及参数.
  2. 谈谈网站设计时图片的使用
  3. NHibernate入门hello world
  4. 【Let‘s Go】Go语言入门篇
  5. u-boot Makefile完全解读
  6. 如何修改linux的MAC地址
  7. hdu2065(指数型母函数+快速幂)
  8. vscode最好看的主题推荐_新学期,幼儿园环创主题墙及楼道,这样布置最好看!...
  9. Mips TLB miss异常
  10. java远程操作ftp服务器上传下载