Linux基础开发工具(git篇)
目录1.如何理解版本控制-Git gitee||github版本控制器git既是一个client也是一个servergit是一个底层的版本控制系统软件gitee||GitHub是基于git的网站或者平台去中心化分布式的版本控制2.Git的历史3.安装git4.操作新建仓库点击克隆/下载git clone复制的5.git三板斧先git config1.git add2.git commit3.git push附加1.查看日志 git log2.查看状态git status1.如何理解版本控制-Git gitee||github不知道你工作或学习时有没有遇到这样的情况我们在编写各种文档时为了防止文档丢失更改失误失误后能恢复到原来的版本不得不复制出一个副本每个版本有各自的内容但最终会只有一份报告需要被我们使用 。 但在此之前的工作都需要这些不同版本的报告于是每次都是复制粘贴副本产出的文件就越来越 多文件多不是问题问题是随着版本数量的不断增多你还记得这些版本各自都是修改了什么 吗 文档如此我们写的项目代码也是存在这个问题的版本控制器为了能够更方便我们管理这些不同版本的文件便有了版本控制器。所谓的版本控制器就是能让你了解到一个文件的历史以及它的发展过程的系统。通俗的讲就是一个可以记录工程的每一次改动和 版本迭代的一个管理系统同时也方便多人协同作业。 目前最主流的版本控制器就是 Git 。Git 可以控制电脑上所有格式的文件例如 doc、excel、dwg、 dgn、rvt等等。对于我们开发人员来说Git 最重要的就是可以帮助我们管理软件开发项目中的源代码文件仓库本质就是一个文件夹本地仓库新需求每个用户要建立不同的仓库远端仓库git既是一个client也是一个server每个 Git 仓库既可以作为客户端从其他仓库pull/fetch代码也可以作为服务器通过push将本地提交推送到其他仓库或通过daemon、SSH 等方式对外提供服务。没有严格的中央仓库概念任何节点都可以相互拉取和推送这也是 Git 与 SVN 等集中式版本控制系统的核心区别。git是一个底层的版本控制系统软件“底层”体现在Git 的核心设计基于对象存储blob、tree、commit、tag并提供了一系列“管道”plumbing命令如git hash-object、git cat-file供高级用户和脚本直接操作仓库内部结构。相对地日常使用的git add、git commit等被称为“瓷器”porcelain命令是对底层命令的封装。所以更准确的说法是Git 是一个基于内容寻址文件系统的、底层的版本控制软件。它为上层工具如 GitHub、GitLab和开发者提供了强大的数据完整性与分布式协作能力。gitee||GitHub是基于git的网站或者平台去中心化分布式的版本控制去中心化没有唯一的中央服务器每个开发者的本地仓库都包含完整的版本历史任何一个副本都可以作为新的“中心”。分布式所有仓库地位对等可以在彼此之间拉取pull和推送push提交而不必依赖单一权威节点。这种设计带来了极高的容错性、离线工作能力和协作灵活性与传统的集中式版本控制系统如 Subversion形成鲜明对比。Git 通过分布式模型、分支与合并、远程仓库等机制为团队协作提供了高效的基础。2.Git的历史git是开源的同生活中的许多伟大事物一样Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上19912002年间。到 2002 年整个项目组开始启用一个专有的分布式版本 控制系统 BitKeeper 来管理和维护代码。到了 2005 年开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区特别是 Linux 的缔造者 Linus Torvalds基于使用 BitKeeper 时的经验教训开发出自己的版本系统。 他们对新的系统制订了若干目标• 速度• 简单的设计• 对非线性开发模式的强力支持允许成千上万个并行开发的分支• 完全分布式• 有能力高效管理类似 Linux 内核一样的超大规模项目速度和数据量自诞生于 2005 年以来Git 日臻成熟完善在高度易用的同时仍然保留着初期设定的目标。 它的速度飞快极其适合管理大项目有着令人难以置信的非线性分支管理系统。3.安装gityum install git[user1iZ5waahoxw3q2bZ processbar]$ sudo yum install git [sudo] password for user1: Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.cloud.aliyuncs.com * extras: mirrors.cloud.aliyuncs.com * updates: mirrors.cloud.aliyuncs.com base | 3.6 kB 00:00:00 epel | 4.3 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 Package git-1.8.3.1-25.el7_9.x86_64 already installed and latest version Nothing to do我这里是因为已经安装了查看版本git --version[user1iZ5waahoxw3q2bZ processbar]$ git --version git version 1.8.3.14.操作我们这里使用gitee做演示https://gitee.com/新建仓库点击克隆/下载点击复制git clone复制的[user1iZ5waahoxw3q2bZ ~]$ git clone xxx remote: Enumerating objects: 689, done. remote: Total 689 (delta 0), reused 0 (delta 0), pack-reused 689 (from 1) Receiving objects: 100% (689/689), 3.23 MiB | 1.19 MiB/s, done. Resolving deltas: 100% (249/249), done.[user1iZ5waahoxw3q2bZ linux-learning]$ ls -al total 20 drwxrwxr-x 5 user1 user1 4096 Apr 16 14:43 . drwx------ 4 user1 user1 4096 Apr 16 14:43 .. drwxrwxr-x 8 user1 user1 4096 Apr 16 14:42 .git drwxrwxr-x 4 user1 user1 4096 Apr 15 22:15 linux drwxrwxr-x 39 user1 user1 4096 Apr 16 14:42 xuexi我们将.git称为隐藏的本地仓库5.git三板斧先git configgit config --global user.email xxxxqq.com git config --global user.name nianheng6661.git add2.git commit3.git push附加1.查看日志 git log2.查看状态git statusgit版本管理只进行管理源文件.gitignore:需要忽略的特定后缀的文件列表远端仓库相比较于任何人都是最新的为什么要冲突提醒本地用户你要和远端仓库进行同步了git pull 解决冲突今天我们的学习就到此为止期待我们下次再见
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2524853.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!