git学习总结

作者: TW张苗 | 来源:发表于2016-12-04 17:29 被阅读24次

    Git是目前世界上最先进的分布式版本控制系统(没有之一)

    为什么会有版本控制系统?

    大家在写论文的时候,都会碰到这样一个头疼的问题:在论文反复的修改过程中,你的电脑桌面上会有很多个论文版本,想删掉一些,但又怕哪天突然会用到,只好作罢。尤其是,当你把论文交给老师或者同学修改,若干天后,他们把改后的文章发回来,但是这期间你自己也做了一些改动,这时候你还需要自己手动把这些改动合并,基于手动管理多个版本的这种不便性,版本控制系统应运而生。

    分布式和集中式版本控制系统有何区别

    集中式版本控制系统,常见的有CVS和SVN,其版本库是集中存放在中央服务器的,工作的时候用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始工作,之后,再把自己的工作推送给中央服务器。
    分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,虽然系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样工作,只是交换修改不方便而已。
    简而言之,分布式与集中式的区别有:

    • 集中式版本控制系统必须联网才能工作,而分布式不必联网;
    • 集中式版本控制系统的中央服务器如果出了问题,所有人都没法干活,而在分布式中,如果github挂了可以重新建一个服务器,然后把任何一个人的仓库clone过去,因为分布式版本控制的每个节点都是完整仓库;

    安装git

    在Ubuntu上安装git非常简单,只需要下面一条命令足以

    sudo apt-get install git
    

    如果是别的系统,可以参照安装git.

    git的基本操作

    • 配置git上的用户名和邮箱
    git config --global user.name "用户名"
    git config --global user.email "邮箱"
    

    需要注意的是,git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置。

    • 创建版本库
      第一步,先创建一个空目录
    mkdir feilon
    cd feilon
    

    第二步,通过git init命令把这个目录变成Git可以管理的仓库

    git init
    
    • 把文件添加到版本库
    git add readme.tet
    commit -m "wrote a readme file"
    

    其中git commit命令中-m后面输入的是本次提交的说明,这样就能从历史记录里方便地找到改动记录。
    Git添加文件需要add和commit两步,是因为commit可以一次提交很多文件,所以你可以多次add不同的文件。

    • 查看仓库的状态
    git status
    

    git status命令可以让我们时刻掌握仓库当前的状态,如果git status告诉我们有文件被修改过,此时可以用git diff查看具体的修改内容。

    • 创建与删除分支
      首先,我们创建miao分支,然后切换到miao分支:
    git checkout -b miao
    

    git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

    git branch miao
    git checkout miao
    

    删除分支miao的命令如下

    git branch -d miao
    
    • 添加远程库
      第一步,需要在GitHub上创建一个与本地git仓库同名的git仓库;


      GitHub上创建新仓库

      第二步,关联远程库,在GitHub上创建好一个新仓库后,会出现如下页面:


      GitHub上创建仓库后
      我们注意到,GitHub给出的地址不止一个,实际上,Git支持多种协议,可以使用ssh,也可以使用https,但通过ssh支持的原生git协议速度最快。
      在本地仓库下运行如下命令,二选一即可:
    git remote add origin https://github.com/zmfl121314/feilon.git
    

    或者

    git remote add origin git@github.com:zmfl121314/feilon.git
    

    第三步,把当前分支master推送到远程

    git push -u origin master
    

    由于远程库是空的,第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令为:

    git push origin master
    
    • 从远程库克隆
      第一步,先创建远程库;
      第二步,从远程库克隆到本地,同样的,在本地仓库下运行如下命令,二选一即可:
    git clone git@github.com:zmfl121314/feilon.git
    

    或者

    git clone https://github.com/zmfl121314/feilon.git
    

    相关文章

      网友评论

      本文标题:git学习总结

      本文链接:https://www.haomeiwen.com/subject/wslqmttx.html