Git概念、安装和搭建

Git系统中的一些概念:

        git          分布式版本控制系统

       git-scm.com: git官方网站

       GitHub:      是一个公开的,免费代码托管平台,你可以把你的代码托管在上面,类似于CSDN的码云,或者是你公司内部的server

       git在windows操作系统上的客户端名字: 

                                        Cygwin、msysGit、GitHub for windows

      git在linux操作系统上的客户端名字:                Git

      TortoiseGit:   是一个Windows系统下Git软件的GUI,基于msysGit的图形化界面。该图形界面,调用的命令是msysGit的内部命令;所以,在使用它之前,需要先安装msysGit。

 

本地仓库工作示意图:

 

 

 

    一张图理解,git本地仓库如何管理信息:

    把本地目录做为git仓库后,该目录空间大致分为两个部分:可见部分(工作区)和隐藏目录(.git目录)。

    而隐藏的.git目录(随本地目录被init而创建),又称为:版本库。顾名思义,其中保存的信息,是文件各版本更改信息。

    在git bash中,通过命令把工作区切换到该仓库目录,对其工作区中文件进行更改。修改完成后,经过  git add 文件名   把更改的文件提交到版本库中的stage(暂存区),再经过  git commit -m "提交说明"    把修改的文件信息提交到当前分支master上;最后本地版本库中的master保存的就是一条版本修改信息的主分支。

    最后可以把本地仓库和远程仓库做关联,把本地仓库中master中的修改信息时间线,推送到远程仓库上,用到git push命令。

    简单点来说,这个本地仓库对我们来说就是一个文件夹,可以在这个文件夹下存任何文件,和普通文件夹没任何区别。只是当你想要把一个重要的更改信息做一个备份时,可以用git add file,对该文件夹下这个file进行add,然后git commit -m "修改原因",此时修改信息就被保存到了隐藏区。如果想进一步推到GitHub,再git push -u .origin branch就好。

 

安装:

    无外乎1.在本地创建仓库,2.在本地添加修改人的信息git config --global xxx ;3. 在GitHub上创建一个仓库;4,把本地仓库和GitHub仓库进行关联(SSH添加密钥)。

     安装Git教程、及第一次使用时可能出现的问题和解决办法:

     http://blog.csdn.net/sssssuuuuu666/article/details/78565381

 

重要提示:

        在第一次在一个新机器上安装Git之后,第一步一般都会设置git config命令进行配置,比如

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

       其实完全可以在本地对版本信息进行管理。而如果你想把内容同步到远程仓库上,通过远程仓库做一个备份,也是完全可以的,比如github或者码云。

       但是,这里要注意的是,在第一次(或者多日之后)将你的本地git仓库的内容推送到远程仓库(GitHub)之前,一定要先进行本地git与GitHub进行SSH关联  (即,建立本地机器与GitHub的SSH连接。没有连接,怎么进行信息传送?),就是将本地的public key添加到远程GitHub上,已使本地机器通过SSH,有访问远程GitHub的权限。

        否则,在推送时就会出现:

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rightsand the repository exists.

       至于如何添加,可以参考:点击(在这篇blog的最后一段)

使用:

   基础使用:

    使用无非两个方面,1. 在本地的更新;2,在GitHub上的更新(在本地更新完后,可以推送到远程仓库上)

    1. 在本地的更新:

     在设置的那个仓库文件夹下,有众多files,选择你想要做备份的那个文件,比如file1。

git add file1
git add file2 #可以add多次,即add多个files,然后一起commit
git commit -m "为什么要更新的注释"

    commit后,本地仓库已经更新完毕。

   2. 在GitHub上的更新

    在本地备份后,害怕电脑突然坏掉,我们也可以把备份信息更新到远程仓库上。

git push -u origin branch #该branch是你想推送到GitHub对应仓库的branch,原始是master

  对于第一次推送时,可以使用:

git push origin branch --force

    --force会强制性把内容推送到branch分支,并清除branch分支的所有信息,所以第一次可以用用,后面就算了。

    高阶使用;

      在本地创建新的分支,在GitHub上创建新分支。这些分支就像是你在某个点,基于不同方法的尝试。

      比如目前我们在节点1上(此时的分支为branch1),发现有两种可以用的方法。我们想要探索另外一种方法,又不想毁掉branch1做的尝试,所以可以建立branch2(当然也可以是多人协同工作一个项目,个人建立个人的分支)。

    在本地创建新分支(参考:参考链接1参考链接2

git checkout -b feature_branch_name
git push -u origin feature_branch_name  #把添加的分支,添加到GitHub的分支上

    当想要改变分支时:

git checkout branch

    删除分支(参考链接

git -d branch_name  #删除本地分支
git push origin --delete branch_name #删除远程仓库的分支

    

一些扩展:

       git:分布式版本控制系统与集中式版本控制系统的区别:

       虽然分布式版本控制系统同样有一个充当中央服务器的电脑,但是和集中式不同的是,每个人的本地仓库都有完整的版本修改信息。好处就是,中央服务器挂了,仍然有大量的本地记录保存,完全可以再设定一个中央服务器,再次执行推送,而这些是集中式版本控制所不具备的。集中式版本控制系统,一旦服务器挂了,所有的信息就消失了。

       当然分布式版本控制系统的中央服务器可以由你自己搭建,同时git server也可以是公司的server,24小时开机,能够让你从中实时push,pull或clone;而github是一个免费公开的远程server。

 

        git系统中,本地仓库和远程仓库之间的准守的协议:

        通过git实现把本地仓库里面的主分支推送到远程仓库,需要遵循的协议:

https://git-scm.com/book/zh/v1/Git-%E5%86%85%E9%83%A8%E5%8E%9F%E7%90%86-%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE

        如果想构建Git服务器, 可以从下面四种Git协议中挑选一种,或几种组合式来传输数据  :  本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 Git 协议,详情看:

https://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%8D%8F%E8%AE%AE

http://blog.csdn.net/chuntiandejiaobu10/article/details/52095754

         搭建自身服务器教程: http://blog.csdn.net/aoshilang2249/article/details/37884325

        推送到远程仓库的过程理解:Git之所以能够把内容从本地推送到服务器上,一是,服务器提供这样的服务,二是,本地和服务器均有一种可以识别的Git传送协议。可以认为:通过Git的传输协议,把本地内容传到服务器上,服务器根据协议进行接收,接收完数据后,对传输的内容进行存储和处理。

        最后推荐一个初识Git的教程:廖雪峰的官方网站,比较精简易懂。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值