git的使用

因为要用到github上一个开源项目,因此抽空装了个git研究了一下。
我的了解主要是通过廖雪峰老师的网站,写得浅显易懂,推荐想学习git的去看。

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000


相比之下,网上其他教程,就不怎么样了。概念都没说清楚,就开始堆命令。
我觉得学习一样新的东西,首先要把这个东西引入的新的概念说清楚,否则看的人会根本摸不着头脑。
比如读者连代码仓库都不知道呢,你就开始教命令,说clone现有仓库,命令是git clone URL。。。balabala
谁知道怎么回事呢,是吧。
当然,别人没有手把手教你的义务,有可能人家写出来只是给自己做总结,所以我们私下抱怨一下就完了。

我只能说作为一个完整的教程,网上大部分人写的都不够格。


也要申明一下,我的这篇总结也是给自己看的,廖老师珠玉在前,我一刚入门的新手没能力也没必要再去写一篇
完整的入门教程了,推荐大家去看廖老师的教程,网址再写一下
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

废话少说,总结一下我学习git的历程。

首先是git的安装,我是在windows环境下,从http://msysgit.github.io/上面下的安装包
然后按照安装步骤一步一步next下去就好了,中间有几个选项稍微注意一下
一个是Windows Explorer integration,其实就是选择添加到右键菜单的功能,选择Advanced功能就多一些
选择Simple就最多有两个功能Git Bash Here和Git GUI here。我选的是Simple。
这两个功能也很简单,就是在当前目录下运行Git Bash(就是命令终端)和Git的GUI程序。
因为一般你直接双击Git Bash,它默认的目录是用户目录
比如我的用户名是fox,电脑名是fox-PC
那么直接运行Git Bash,它的显示是这样的

fox@FOX-PC ~


这个~就代表用户的home目录。home目录是linux的术语,在命令行下输入pwd(打印当前完整路径)
我们看到windows下Git Bash认为的home目录是
/c/Users/fox
说明一下,/c代表的是c盘,linux下是没有c:/这种表示法的,它认为所有目录都是根目录/的子目录。

所以你要切换的d盘,要用

cd /d


这跟我们用dos命令是不同的,记住一点,Git Bash的那一套命令,遵循的都是linux的规范。
回到我们的右键菜单,右键菜单和直接运行的唯一区别就是当前目录不一样,你在一个目录下右键运行Git Bash
就省去了你直接运行然后用命令切换目录的麻烦,仅此而已。
安装时另一个选项让你选择是否要在windows的命令行模式下使用Git,如果选择是,它会把Git命令的路径加入到
PATH环境变量上,这样在windows命令行模式下就能直接输入git命令进行使用了
如果选择Git Bash only,则Git命令只能在Git Bash的命令终端上使用。
我选择的是Git Bash only。因为我觉得Git Bash用的命令遵循的是linux那一套,用在windows命令行下容易搞混,
而且我觉得软件功能专一和集中一点比较好,要用Git,就在Git Bash里用就好了,如果搞得很多地方都能用,
反而不知道在什么地方用比较合适了,也容易搞错。这也是前面我右键菜单选择Simple的原因。
最后一个选项是换行符的转换。主要是因为windows下换行是CRLF(\r\n),而linux下是\r。
我们按推荐的来就好了,推荐的就是保存文件的时候\r都转成\r\n,而提交的时候\r\n都转成\r。
反正我按这个来做,没碰到什么问题。

安装完成后用git来配置一下自己的名字和email,标志一下身份,是让git知道后面记录的每步操作的作者是谁。


$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"


另外说一下,由于我们用Git来管理我们的代码文件,因此涉及到一个编码的问题,如果你windows里的编辑器使用
的是一套编码方式,而Git使用的是另一套编码方式,就不可避免会有很多问题。

因此我们统一使用UTF-8编码方式。而廖老师的文章里提到过windows自带的记事本,对于UTF-8编码的文件处理

是有点问题的,为了避免这些问题,我们最好选择Notepad++来编辑文本。



git的一些概念:仓库、版本、分支、远程仓库。
首先看什么是仓库。仓库又叫版本库,英文名叫respository。我看很多地方都没有给它一个定义。我的理解,
就是版本库就是一个目录,这个目录里面的文件会被git管理起来,你对这个目录里的文件进行了修改,或者新增、
删除了某些文件,只要在git里提交了这些操作,git都能帮你记录、管理起来。以后无论你想查看修改的历史,或者
想恢复到某个时间点的样子,git都能帮你实现。
而要让git能帮你管理某个目录,首先必须在这个目录下建立一些配置和索引文件。这就是创建仓库的过程。
创建的过程很简单,你进入到你要建立仓库的目录,然后使用
git init
就好了。你再看目录下面,会多了一个.git文件夹,这个文件夹下面会有一些子目录和文件,这些都是git正常工作
所必须的,轻易不要去动它们。
创建了仓库以后,后面就是提交修改、管理修改、撤销修改之类的操作了。


版本。我觉得版本就是仓库里的文件在某个时间点的状态。这个状态必须是git记录在案的,这样我们才能恢复和

提取出处于这个状态的文件,也就是我们可以随时获取到当前仓库的某个版本。可以用git tag versionname对最近

的一次提交打上标签,这样git就会把版本名字和最近提交的状态联系起来。



远程仓库。就是不在本地,在服务器里的建立的仓库。只要知道远程仓库的url地址,本地可以使用git clone url
把远程仓库连同里面的文件整个clone到本地来。然后在本地进行修改、管理。最后再提交到远程仓库中。
远程仓库可以自己搭在局域网里的某台linux服务器上,这样便于多人协作,代码也仅限于局域网交流,比较保密。
如果不在乎保密的问题,可以在一些公网平台上建立远程仓库,比如著名的github。

使用github也很简单,首先肯定是在github上注册一个帐号。然后呢,为了使每次你把本地仓库提交到github上时

它都能识别你的身份,你必须在本地生成一对SSH Key的密钥对,id_rsa是私钥,留在本地home目录的.SSH

文件夹下(还记得windows系统中home文件夹是哪个吗^_^)。id_rsa.pub是公钥,我们要保存到github上,

在github网站个人设置的SSH Keys选项下可以添加。

本地生成SSH Key的密钥对用如下命令

ssh-keygen -t rsa -C "email_name"


其中email_name是你自己邮箱的名字。其实我怀疑任意字符串都可以。只要公钥和密钥配好对就可以。没做过试验


分支。分支是很重要的一个概念。分支解释起来比较困难。我尝试一下。
我们知道,对仓库的各种修改,提交后git都会记录下来,形成一个个时间节点的状态,按时间顺序来看,这就是
一条分支,我们称为主分支。
如果在主分支之外,我们又创建了一条分支,那么,当我们处于这条分支的时候,所有提交的修改,都算在这条分支
上,不会影响到主分支。当我们在这条分支上工作,完成得差不多了,我们可以把分支合并到主分支上面去。
这样,我们在分支上的工作成果就反映到主分支上面去了。
所以,一般用git管理的多人协作的分支流程都是如下图所示的




每个成员都在dev分支上干活,每个人都有自己的分支,取得阶段性成果之后就往dev分支上合并。
在整体进行到一定阶段之后,又把dev分支往主分支合并,形成一个版本。
当然,分支也涉及到管理、合并时的冲突解决等细节问题,具体可以参考廖老师的教程。


大体上,我们如果掌握了git的上面这些东西,基本就能应付日常的版本管理了。我也只是照着廖老师的教程大体
过了一遍,要真正熟练掌握,还是要平时多用git进行版本管理。
还有一些内容,比如本地git服务器的搭建,我自己没有去实践,就不献丑了。大家去看廖老师的教程吧。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值