其他分享
首页 > 其他分享> > 软件构造01 Git原理操作总结

软件构造01 Git原理操作总结

作者:互联网

软件构造

Git原理操作总结

1 git的原理

Git是分布式版本控制系统
我们注意划重点,他是一个分布式版本控制系统,在他诞生之前,就已经有许多集成式版本控制系统.

我们为什么需要版本控制系统?

如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?更何况随着计算机软件的发展,一个软件会产生很多版本,如何去管理这些版本就会产生对这种形态的软件的需要.

git作为分布式版本控制系统的优势?为什么选择分布式?

CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢?

关于集中式版本控制系统

集中式系统有一个大型的中央处理系统,中央处理系统是一台高性能、可扩充的计算机,所有的数据、运算、处理任务全部在中央计算机系统上完成。中央计算机连接多个终端,终端用来输入和输出,没有数据处理能力,运算全部在主机上进行。远程终端通过网络连接到中央计算机,它们得到的信息是一致的。
集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
他有一个巨大的缺陷:
集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,非常致命而且过分依赖于中央服务器的性能.

分布式版本控制:(摘自维基百科)

在程序设计中,分布式版本控制(英语:distributed revision control 或 distributed version control,又译为分布式版本控制),又称去中心化版本控制(decentralized version control),是一种版本控制的方式,它允许软件开发者可以共同参与一个软件开发项目,但是不必在相同的网络系统下工作。其作法是在每个开发者电脑中复制一份完整的代码库以及完整历史。因此在无法连接网络时,仍可以进行软件的分支及合并,可以加速大部分的作业,增加此情形可以进行的工作,而且系统的代码库可以在多家电脑上备份,不需靠单一位置的备份。而多个位置的代码库再透过其他机制来达到同步。

和集中式版本控制系统相比,分布式版本控制系统的优点如下: (摘自维基百科)

  1. 用户在没有网络的情形下,也可以访问其电脑中的软件存储库。
  2. DVCS下的常见工作(例如上传、看修改履历、回退变更)不需要和中央服务器通信即可达成,因此速度很快。DVCS下,只有要和其他人分享变更内容时才需要通信。
  3. 允许个人作业,用户可以将不希望公开的早期修改(甚至是草稿)上传[来源请求]
  4. 工作复本的作用类似远程备份,因此不会依赖单一的实体机器,带来单点失效的风险.
  5. 允许不同的开发模型,例如用分支或Commander/Lieutenant模型[来源请求]。
  6. 在自由及开放源代码软件项目中,若有管理上的冲突或是设计上的不一定,很容易可以从一项目中分叉出新的项目。

2 git中简单好用的命令:

  1. 初始化本地仓库

    git init
    在初始化后本地仓库(该文件夹目录下会多出一个 .git文件夹)
    

  2. 添加需要提交的文件(有修改)

    git add [file](git add .可添加当前子目录所有产生变化的文件)
    

  3. 提交 对提交文件生成新的版本

    git commit -m "message"("message"中输入本次提交你想要记录的信息)
    

  4. 我想要删除提交的错误文件怎么办?

    记住,在git中文件消失对这个文件来说也是一种变化 , git记录的文件的变化.
    所有只需要在本地仓库目录删除对应文件,在进行git addcommit即可

  5. 好用的查看仓库内文件变化状态命令

    git status

    是非常好用的查看你当前仓库中文件变化状态的命令

    多按按他看看仓库状态总不会吃亏

  6. 链接远程库(GitHub)

    第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

    $ ssh-keygen -t rsa -C "youremail@example.com"

    第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

    然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容.

    登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库

    第3步: 链接远程库

    本地仓库目录下输入命令: $ git remote add origin git@github.com:"username"/"repository name".git

  7. 向远程库推送

    git push -u origin master

  8. 查看你链接的远程库:

    git show

  9. 有些文件不想提交上去:比如工程文件等等
    建立.gitignore文件,在该文件中输入你不想提交的文件或者目录即可

  10. 从远程库克隆(需要网络良好):

    $ git clone git@github.com:"username"/"repository name".git

  11. 版本回退:

    git log
    命令显示从最近到最远的提交日志

    你看到的一大串类似1094adb...的是commit id(版本号)

    回退制定版本:
    $ git reset --hard "commit id"

    回退上一版本:
    $ git reset --hard HEAD^

总结:

git作为分布式版本控制系统相比集成式更加现代,但他相比别的分布式版本控制系统的优势在于git还有极其强大的分支管理等等功能.我还没有展开进一步学习,先不在此探究.

标签:文件,Git,控制系统,集中式,01,版本,git,软件,分布式
来源: https://www.cnblogs.com/yuesiyuan/p/16366517.html