GIT教程、GIT的使用方法以及常用命令

来源:互联网 发布:数据分析实战 pdf 编辑:程序博客网 时间:2024/06/05 23:41
****初学Git者我希望你能把这篇文章全部看下去,因为我也是初学者学习GIT之后总结出来,菜鸟专用,大神请走。****一、Git是什么?**Git 是目前世界上最先进的分布式版本控制系统,至于什么是版本管理这里不解释。至于是什么事分布式,这里我们可以联想我们经常用到的CVS,SVN这里集中式的版本控制系统,那么集中式和分布式有什么区别?**集中式(SVN,CVS):**版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个 10M 的文件就需要 5 分钟,这还不得把人给憋死啊.**分布式(GIT):**首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。**对比:**和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。当然,Git 的优势不单是不必联网这么简单,后面我们还会看到 Git 极其强大的分支管理,把 SVN 等远远抛在了后面。CVS 作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。由于 CVS 自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。同样是开源而且免费的 SVN 修正了 CVS 的一些稳定性问题,是目前用得最多的集中式版本库控制系统。**二、安装Git**1、windows电脑上安装git:从 http://msysgit.github.io/ 下载,然后按默认选项安装即可。安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明 Git 安装成功!**三、使用GIT**1、安装完成后:需要设置全局,告诉服务器你是谁:git bash  中输入:$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"2、通过git init命令创建git仓库(git 管理的仓库)$ git initInitialized empty Git repository in ....瞬间 Git 就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个 .git 的目录,这个目录是 Git 来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把 Git 仓库给破坏了。3、通过git add a.txt(需要上传的文件,“.”代表当前git仓库下的所有文件)执行上面的命令,没有任何显示,这就对了,Unix 的哲学是“没有消息就是好消息”,说明添加成功。4、通过git commit命令,将刚才添加的文件提交到本地git 仓库。$ git commit -m "wrote a readme file"[master (root-commit) cb926e7] wrote a readme file1 file changed, 2 insertions(+)简单解释一下 git commit 命令, -m 后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。5、使用git status 命令可以让我们时刻掌握仓库当前的状态,当我们头一热忘记我们是否上传或添加了这些文件的时候,我们就可以使用git status命令来查看git仓库的状态来探索是否文件被添加。要随时掌握工作区的状态,使用 git status 命令。如果 git status 告诉你有文件被修改过,用 git diff 可以查看修改内容。四、将本地git仓库推送至远端服务器1.添加远程仓库:例如,git remote add origin http://hismsdev.hand-china.com/gitlab/10108/xx.git2.推送:git push -u origin master至此,基基基本用法就这些。**四、git环境变量配置**有时我们在做一些项目是,需要git配置环境变量,git的环境变量非常简单,只需要在在环境变量pathz中加入你git的安装路径下的bin活着cmd都可以。例如,我安装在D:\ProgramFile\Git下,所以我需要做的及时在path后面加D:\ProgramFile\Git\bin或者D:\ProgramFile\Git\cmd(如果path之前没有;记得加;好哦)**五、    Git命令走向图:**![GIT命令原理图](http://img.blog.csdn.net/20160909164006117)**六、.gitignore文件的使用(注意有个点号)**首先要强调一点,这个文件的完整文件名就是“.gitignore”,注意最前面有个“.”。这样没有扩展名的文件在Windows下不太好创建,这里给出win7的创建方法:创建一个文件,文件名为:“.gitignore.”,注意前后都有一个点。保存之后系统会自动重命名为“.gitignore”。一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。实际项目中,很多文件都是不需要版本管理的,比如Python的.pyc文件和一些包含密码的配置文件等等。这个文件的内容是一些规则,Git会根据这些规则来判断是否将文件添加到版本控制中。下面我们看看常用的规则:/mtk/ 过滤整个文件夹*.zip 过滤所有.zip文件/mtk/do.c 过滤某个具体文件很简单吧,被过滤掉的文件就不会出现在你的GitHub库中了,当然本地库中还有,只是push的时候不会上传。需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中:!*.zip!/mtk/one.txt唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。为什么要有两种规则呢?想象一个场景:我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理。那么我们就需要使用:/mtk/!/mtk/one.txt假设我们只有过滤规则没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!最后需要强调的一点是,如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。简单来说,出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。所以大家一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦。**创建.gitignore文件方法总结:******1. 在需要创建  .gitignore 文件的文件夹, 右键选择****Git Bash 进入命令行,进入项目所在目录。****2. 输入 touch .gitignore 在文件夹就生成了一个“.gitignore”文件**。**然后在”.gitignore” 文件里输入你要忽略的文件夹及其文件就可以了****3.然后用编辑器打开这个文件进行编辑就行了。****4.然后就写规则来操作要忽略的文件了。******七、克隆,下载**1.cd <file>克隆到那个目录文件。2.git clone http://hismsdev.hand-china.com/gitlab/10108/SpringExam.git从这个服务器中克隆**
0 0
原创粉丝点击