ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-06-11 19:03:36  阅读:156  来源: 互联网

标签:文件 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有