欢迎来到Git的世界

  魔都的梅雨季简直了!对于杨梅爱好者来说,这是一个幸福的季节,然而,对于一个北方的妹子,实在忍受不了他的“诗”。每到下雨天,最怕的就是衣服、鞋子被打湿,可是昨天在网上看到一张照片后,雨天阴霾的心情瞬间放晴。只要心情是晴朗的,人生就没有雨天。

 言归正传,开启我的Git学习之路喽。。。。。。

Git的版本控制之道

Git作为一种新型的,轻量级的分布式版本控制系统(DVCS),深受攻城狮们喜爱。版本控制系统就好比银行的保险箱,保管价值连城的资产。而对于程序员来说,源代码就是这样的资产,由版本控制系统来保管。在Git的世界里,可以随身带着有自动提款功能的保险箱周游世界,这意味这你可以完全断开跟别人的连接独立工作,也可以在必要的时候与大家共享工作成果。

版本库

版本库是版本控制系统中用来存储所有历史数据的地方。下面对集中式版本库和分布式版本库做一下简要对比

集中式版本控制系统:比较代表性的是SVN,在这种模式中,所有程序员都会把他们的改动提交到服务器上的一个公共版本库中。具体来说,每一个程序员在本地都会有一个工作目录树,其内容是该版本库中最新的代码,当他们在本地工作目录树完成修改后,要把改动提交回公共版本库中。

分布式版本控制系统:以Git为代表,在这种模式中,每个人在本地都会有自己的版本库,而不是连接到服务器上的一个公共的版本库,所有的历史纪录都存储在本地版本库中,向版本库提交代码无需连接远程版本库,而是记录在自己的版本库中。如果程序员之间要传递各自的修改,可以通过Git的"push"操作直接把修改上传到主版本库。

所以,集中式版本控制系统就好比程序员公用一个保险箱,而分布式版本系统就好比每个程序员都有自己的个人保险箱。

工作目录树(Working Tree)

工作目录树是版本库的一个“断面视图”,包括开发该项目需要的全部文件。对于如SVN,工作目录在本地,版本库在服务器上,而Git中并非如此。在Git中,版本库不在服务器上,而存储在本地工作目录树的“.git”目录中。

那么,工作目录树是怎么创建的呢?有两个方法:第一个方法使用Git相关命令初始化版本库,生产“.git”目录;第二个方法是clone一个已有的版本库,也就是连带创建了相应的工作目录树。

代码修改与文件同步

每次提交操作都会使的版本库中新增一个版本,除了记录改动的内容外,还会记录改动的日志信息,即提交留言commit message,方便将来查询做这个改动的原因。

Git除了把改动提交到本地版本库之外,还要通过某种方法将改动共享,为此,必须把改动push到公共版本库中。

如果要实现代码同步,需要两步操作,推入操作只是其中的一步,在推入之前必须要要把别人的改动从公共版本库中拿入到自己的版本库中。把远程版本库中改动拿到本地版本库需要两步操作,第一步,把改动取来(Fetch),把远程版本库中的版本和分支复制到本地版本库;第二步,在自己的版本库中,把远程取来的改动与自己的改动合并(Merge)。在Git中可以用一个命令完成这两部操作,即Pull。

在最底层,Git记录和跟踪版本库中组成文件的各部分内容,并不是把整个文件作为不可分割的整体来记录和跟踪,而是记录和跟踪文件的各部分内容,也就是字符和代码行。

可以使用标签来跟踪里程碑,用来标记版本库历史中某个特定的点。比如对外发布的版本

介绍分支(Branch)与合并

分支

版本库类似于一本可以从头到尾按顺序阅读整个故事的书。而版本库中的分支就好像那种测试类的题目,选择不同的选项会跳转到不同的题目,可以有多种发展方向,各自形成不同的历史轨迹。

主分支(Master)是研发的主线。分支可以合并到别的分支。

合并

合并即把两条或两条以上的分支合并到一起。Git比较各分支上的变化,确定变化在哪里发生,当不同变化发生在文件的不同地方时,Git可以自动合并。当Git不能自动合(即当不同程序员修改了同一文件的同一行代码时)并是就会提示冲突(conflit)。

分布式版本控制系统使用的锁机制是乐观锁,运行多个程序员同时修改同一个文件。

时间: 2024-08-25 10:34:18

欢迎来到Git的世界的相关文章

Swift中文教程(一)--欢迎来到Swift的世界

原文:Swift中文教程(一)--欢迎来到Swift的世界 Apple凌晨时在WWDC发布了Swift编程语言,语法简介我很喜欢,市面上没有完整的中文教程,我在ibooks里面下载了英文原版,现在开始尝试翻译Swift.我会抽时间坚持原版翻译完,时间有限,不正之处请大家多多指教. 新建了Swifter-QQ群:362232993,同好者进. 第一章:欢迎来到Swift的世界 1,简介 Swift是一款全新的面向IOS和OS Apps的编程语言,建立在C语言和Objective-C语言的基础之上,

小丁带你走进git的世界三-撤销修改(转)

一.撤销指令 git checkout还原工作区的功能 git reset  还原暂存区的功能 git clean  还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 git revert 撤销本次提交. 二.指令讲解 Git checkout 首先我们对文件的一个修改,对master.txt进行了修改 修改结果我们利用上面的知识来进行查看. 新增加了Test这么一段话,如果我们想要将工作区的内容添加到暂存区会使用git  add这个命令,如果我们想要还原工作区内容

欢迎来到Swift的世界(Welcome to Swift)

期待已久的WWDC果真没有硬件的任何更新,不多对开发者来说,这次大会依然很有亮点,水果给我们带来了新的语言Swift.他是一种无比简洁高效的语言,而且新的 Swift 语言依旧会和 C 与 Object-C 相兼容. 原文地址:Welcome to Swift 欢迎来到swift的世界 Swift是水果公司推出的新型面向对象语言,用于iOS和OS X平台开发. 它是一种现代的(modern).功能强大的.易于使用的语言. 下面的代码段创建了一个字典并遍历.打印所有元素: let people =

git之旅,畅游git的世界

今天小铭酱带大家探索一下git的奥秘! 1.初步探索 首先我在一个空的文件夹新建了一个名叫hello.html文件,文件内容只有一句话“hello git”.我们先引入git,看看git能为我们它能干什么,嘻嘻~ 1) git init 初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中.就这么简单,我们已经有一个代码仓库了. 2) git add 有了仓库,那第二部我们要让git知道哪些文件需要被管理或跟踪的.输入"git add .&qu

小丁带你走进git的世界三-撤销修改

一.撤销指令 git checkout还原工作区的功能 git reset  还原暂存区的功能 git clean  还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 git revert 撤销本次提交. 二.指令讲解 Git checkout 首先我们对文件的一个修改,对master.txt进行了修改 修改结果我们利用上面的知识来进行查看. 新增加了Test这么一段话,如果我们想要将工作区的内容添加到暂存区会使用git  add这个命令,如果我们想要还原工作区内容

小丁带你走进git的世界四-重写历史记录

一.git对象文件创建 开篇先补充一个知识点,就是比如我建立一个文件之后,使用git add就会生成一个git对象,但是git对象生成后可以在.git/objects里面对应,首先我们来初始化一个仓库git init. $ git init 然后我们来创建两个文件文件名分别为a和b. $ touch a b 将a文件添加到暂存区,然后再将b添加到暂存区,我们会想到这时候有两个git对象产生,但是git对象对应.git/objects文件. $ git add . $ find .git/obje

ESP32 开发之旅① 走进ESP32的世界 安装开发环境

1.前言 ????欢迎大家来到ESP32的世界,从现在开始,笔者将带领大家慢慢揭开ESP32神秘的面纱. ????在学习ESP32之前,博主希望读者能有ESP8266的学习基础(ESP32 Wifi模块,理解为增强版本的ESP8266,很多基本原理是共通的,所以博主也不会去重复). ????ESP32 是一款 WiFi 和蓝牙系统级芯片(SoC),具有行业领先的射频性能.低功耗和高度集成的优势. 2.概览 ????ESP32 带有2个 32位(双核).LX6 CPU,主频高达 240MHz,采用

git 与github的使用

一.使用说明 1.Git与github的功能: Git是世界上最先进的分布式版本控制系统,也就是用来记录你的项目代码历史变更信息的工具:github就是用来存储你的代码以及变更信息的云端平台: 2.优点: 先进并且免费: 3.缺点: Github属于国外站点,国内上传速度较慢. 二.开发步骤说明 1.安装 去https://git-for-windows.github.io/ 下载git, 然后一直点击next安装. 2.配置git用户名与邮箱 在开始菜单里打开Git Bash,然后输入: gi

小丁是怎样入门git的

0x01前言 既然没有华丽的出场,那就平凡的分享,首先我要说明一点本篇文章针对Git初学者,对我自己学Git的资源的整合,其实本篇索引应该在我写Git系列文章的时候就紧跟着放上索引的,由于时间问题没有来得及整理,这里我详细整理下文章内容.其实说到git的文章已经很多了,这里分享下我的学习过程和自己摸索的过程. 个人整理Git学习资源请点击这里:(yes,I’m here)       1.小丁带你走进Git世界一-git简单配置 http://www.cnblogs.com/dwlsxj/p/G