百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 网站模板(百分百源码网)>电脑软件>服务器> Git运用根基篇(一些常用下令和道理)
分享本文到:

Git运用根基篇(一些常用下令和道理)

发布时间:05/16 来源:未知 浏览: 关键词:

Git是一个散布式的版本控制工具,本篇文章从介绍Git开端,重点在于介绍Git的根本下令和运用技巧,让你尝试运用Git的同时,体验到本来一个版本控制工具可以对开发发生如此之多的影响,文章分为两局部,第一局部介绍Git的一些常用下令,其中交叉介绍Git的根本概念和道理,第二篇重点介绍 Git的运用技巧,最后会在Git Hub上新建一个开源项目开启你的Git实战之旅

1、Git是什么

Git在Wikipedia上的定义:它是一个免费的、散布式的版本控制工具,或是一个强调了速度快的源代码治理工具。Git最初被Linus Torvalds开发出来用于治理Linux内核的开发。每一个Git的工作目录都是一个完全独立的代码库,并具有完备的历史记载和版本追踪能力,不依赖 于网络和核心服务器。

Git的涌现减轻了很多开发者和开源项目关于治理分支代码的压力,因为对分支的良好控制,更激励开发者对本人感乐趣的项目做出奉献。其实很多开源项目 包括Linux kernel, Samba, X.org Server, Ruby on Rails,都已经过渡到运用Git作为本人的版本控制工具。关于我们这些喜好写代码的开发者嘛,有两点最大的益处,我们可以在任何地点(在上班的地铁 上)提交本人的代码和查看代码版本;我们可以开许很多多个分支来实践我们的设法,而合并这些分支的开销险些可以忽略不计。

2、Git 1+1

此刻进入本篇文章真正的主题,介绍一下Git的根本下令和操纵,会从Git的版本库的初始化,根本操纵和独占的常用下令三局部着手,让大家能够开端运用Git。

Git平常有两种方式来进行初始化:

git clone: 这是较为简略的一种初始化方式,当你已经有一个长途的Git版本库,只需要在当地克隆一份,例如'git clone git://github.com/someone/some_project.git some_project'下令就是将'git://github.com/someone/some_project.git'这个URL地址的长途版 本库完全克隆到当地some_project目录下面

git init和git remote:这种方式略微复杂一些,当你当地新建了一个工作目录,你可以进入这个目录,运用'git init'下令进行初始化,Git今后就会对该目录下的文件进行版本控制,这时候要是你需要将它放到长途服务器上,可以在长途服务器上新建一个目录,并把 可访问的URL记载下来,此时你就可以应用'git remote add'下令来添加一个长途服务器端,例如'git remote add origin git://github.com/someone/another_project.git'这条下令就会添加URL地址为'git: //github.com/someone/another_project.git',名称为origin的长途服务器,今后提交代码的时候只需要运用 origin又名即可

3、Git的根本下令

此刻我们有了当地和长途的版本库,让我们来试着用用Git的根本下令吧:

git pull:从其他的版本库(既可以是长途的也可以是当地的)将代码更新到当地,例如:'git pull origin master'就是将origin这个版本库的代码更新到当地的master主枝,该功能相似于SVN的update

git add:是将目前更改或者新增的文件参加到Git的索引中,参加到Git的索引中就表示记入了版本历史中,这也是提交以前所需要施行的一步,例如'git add app/model/user.rb'就会添加app/model/user.rb文件到Git的索引中

git rm:从目前的工作空间中和索引中删除文件,例如'git rm app/model/user.rb'

git commit:提交目前工作空间的修改内容,相似于SVN的commit下令,例如'git commit -m "story #3, add user model"',提交的时候必须用-m来输入一条提交信息

git push:将当地commit的代码更新到长途版本库中,例如'git push origin'就会将当地的代码更新到名为orgin的长途版本库中

git log:查看历史日志

git revert:复原一个版本的修改,必须供给一个具体的Git版本号,例如'git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20',Git的版本号都是生成的一个哈希值、

上面的下令险些都是每个版本控制工具所公有的,下面就开端尝试一下Git独占的一些下令:

4、Git独占的一些下令

git branch:对分支的增、删、查等操纵,例如'git branch new_branch'会从目前的工作版本新建一个叫做new_branch的新分支,'git branch -D new_branch'就会强迫删除叫做new_branch的分支,'git branch'就会列出当地所有的分支

git checkout:Git的checkout有两个作用,其一是在不一样的branch之间进行切换,例如 'git checkout new_branch'就会切换到new_branch的分支上去;另一个功能是复原代码的作用,例如'git checkout app/model/user.rb'就会将user.rb文件从上一个已提交的版本中更新回来,未提交的内容全部会回滚

git rebase:用下面两幅图解释会比较分明一些,rebase下令施行后,现实上是将分支点从C移到了G,这样分支也就拥有了从C到G的功能

Git使用基础篇

git reset:将目前的工作目录完全回滚到指定的版本号,假如如下图,我们有A-G五次提交的版本,其中C 的版本号是 bbaf6fb5060b4875b18ff9ff637ce118256d6f20,我们施行了'git reset bbaf6fb5060b4875b18ff9ff637ce118256d6f20'那么效果就只剩下了A-C三个提交的版本

Git使用基础篇

git stash:将目前未提交的工作存入Git工作栈中,机会成熟的时候再利用回来,这里暂时提一下这个下令的用法,背面在技巧篇会重点解说

git config:应用这个下令可以新增、更改Git的各种设置,例如'git config branch.master.remote origin'就将master的长途版本库设置为又名叫做origin版本库,背面在技巧篇会应用这个下令个性化设置你的Git,为你打造唯一无二的 Git

git tag:可以将某个具体的版本打上一个标签,这样你就不需要记忆复杂的版本号哈希值了,例如你可以运用 'git tag revert_version bbaf6fb5060b4875b18ff9ff637ce118256d6f20'来标志这个被你复原的版本,那么今后你想查看该版本时,就可以运用 revert_version标签名,而不是哈希值了

Git之所以能够供给利便的当地分支等特性,是与它的文件存储机制有关的。Git存储版本控制信息时运用它本人定义的一套文件系统存储机制,在代码根目录下有一个.git文件夹,会有如下这样的目录构造:

Git使用基础篇

有几个比较重要的文件和目录需要解释一下:HEAD文件寄存根节点的信息,其实目录构造就表示一个树型构造,Git采纳这种树形构造来存储版本信息, 那么HEAD就表示根;refs目录存储了你在目前版本控制目录下的各种不一样援用(援用指的是你当地和长途所用到的各个树分支的信息),它有heads、 remotes、stash、tags四个子目录,离别存储对不一样的根、长途版本库、Git栈和标签的四种援用,你可以通过下令'git show-ref'更清晰地查看援用信息;logs目录依据不一样的援用存储了日志信息。因而,Git只需要代码根目录下的这一个.git目录就可以记载完 整的版本控制信息,而不是像SVN那样根目录和子目录下都有.svn目录。那么下面就来看一下Git与SVN的区别吧

5、Git与SVN的不一样

SVN(Subversion)是目前运用最多的版本控制工具。与它比拟较,Git最大的优势在于两点:易于当地添加分支和散布式的特性。

下面两幅图可以形象的展现Git与SVN的不一样之处

Git使用基础篇

Git使用基础篇

关于易于当地添加分支,图中Git当地和服务器端构造都很灵活,所有版本都存储在一个目录中,你只需要进行分支的切换即可达到在某个分支工作的结果。 而SVN则完全不一样,要是你需要在当地试验一些本人的代码,只能当地保护多个不一样的拷贝,每个拷贝对应一个SVN服务器地址。举一个现实的例子,之前我所 在的小组运用SVN作为版本控制工具,当我正在试图加强一个模块,工作做到一半,因为会转变原模块的行为导致代码服务器上很多测试的失败,所以并没有提交 代码。这时候上级对我说,此刻有一个很危急的Bug需要处置, 必须在两个小时内完成。我只好将当地的所有修改diff,并输出成为一个patch文件,然后回滚有关目前任务的所有代码,再开端修改Bug的任务,等到 修改好后,在将patch利用回来。前先后后要完成多个繁琐的步骤,这还不计中间代码产生冲突所要进行的工作量。可是要是运用Git, 我们只需要开一个分支或者转回到主分支上,就可以随时开端Bug修改的任务,完成之后,只有切换到本来的分支就可以优雅的继续之前的任务。只有你情愿,每 一个新的任务都可以开一个分支,完成后,再将它合并到主分支上,轻松而优雅。

散布式关于Git而言,你可以当地提交代码,所以在上面的图中,Git有益于将一个大任务分解,进行当地的屡次提交,而SVN只能在当地进行大量的一 次性更改,导致未来合并到主干上造成庞大的风险。Git的代码日志是在当地的,可以随时查看。SVN的日志在服务器上的,每次查看日志需要先从服务器高低 载下来。我工作的小组,代码服务器在老美,每次查看小组几年前所做的工作时,日志下载就需要十分钟,这不能不说是一个疼痛。后来我们迁移到Git上,应用 Git日志在当地的特性,我用Ruby编写了一个Rake脚本,可以查看某个具体任务的所有代码历史,每次只需要几秒钟,大慷慨便我的工作。当然散布式并 不是说用了Git就不需要一个代码核心服务器,要是你工作在一个团队里,还是需要一个服务器来保留所有的代码的。

总结

本篇介绍了Git的根本概念、一些常用下令和道理,大家可以尝试动手体味一下,下一篇会重点介绍Git下令的运用技巧,Git附带的工具,最后会在Git Hub上新建一个开源项目。

热门标签:dede模板 / destoon模板 / dedecms模版 / 织梦模板
责任编辑:oIJWs
打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有152人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助



订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板