Linux基础工具之git

git的历史

Git 是一个分布式版本控制系统,它由Linus Torvalds 于2005年创建。下面是 Git 发展的主要历史里程碑:

创建中心化版本控制系统(CVS、Subversion等):

在 Git 出现之前,许多开发者使用中心化的版本控制系统(如 CVS、Subversion)来协同开发项目。这些系统将代码存储在中央服务器上,用户通过从服务器上检出代码并提交更改来工作。

Linus Torvalds 创建 Git:

2005 年,Linus Torvalds 创建了 Git。他最初的目标是用于 Linux 内核的开发,因为当时的版本控制系统对于内核这样的大型项目来说并不理想。

Git 的分布式特性:

与中心化的版本控制系统不同,Git 是分布式的。这意味着每个开发者都可以在本地拥有完整的代码仓库,并且可以在没有网络连接的情况下进行工作。开发者可以通过克隆远程仓库来获取完整的历史记录和代码版本。

Git 的速度和效率:

Git 被设计成非常快速和高效的版本控制系统。它使用了一种称为“快照”的技术,只存储文件的变化部分,而不是整个文件的副本。这使得 Git 在处理大型项目时非常高效。

Git 的分支和合并:

Git 提供了强大的分支和合并功能,使得开发者可以轻松地创建新的分支,并在不同的分支上进行独立的工作。开发者可以在合适的时候将分支合并到主线上,从而整合各种修改和功能。

Git 的开源和广泛应用:

Git 是一个开源项目,并逐渐成为开发者们的首选版本控制系统。众多的软件开发团队、开源社区以及个人开发者都在使用 Git 来管理他们的代码。

总结起来,Git 是由 Linus Torvalds 创建的分布式版本控制系统,它具有速度快、效率高、支持分支和合并等特点。通过提供强大的版本控制功能,Git 成为了广泛应用于各种软件开发项目的行业标准。

[译] Git 的历史: 软件版本控制的统治之路 - 知乎 (zhihu.com)

什么是版本控制,怎么理解?

我们说git是一个版本控制系统,那么该自己理解版本控制这个概念呢?

版本控制(Version Control)是一种记录和管理文件或项目的不同版本的系统。它可以追踪文件的变化,并允许开发者在不同的时间点回溯、比较和恢复文件的特定版本。

理解版本控制的重要性和好处有以下几个方面:

历史记录:

版本控制系统可以记录每个文件的修改历史,包括做了什么修改、何时进行的修改等。这样开发者可以轻松地查看项目的演变历程,了解每个版本的变化和改进。

回溯和恢复:

版本控制系统可以让开发者在需要时轻松回退到旧版本,恢复之前的状态。如果出现错误或问题,可以快速找到引入问题的版本,并还原到没有问题的版本。

并行开发:

使用版本控制系统,多个开发者可以并行地在同一个项目上工作,而不会互相干扰或覆盖对方的工作。每个开发者可以在自己的分支上独立工作,并在合适的时机将更改合并到主线上。

冲突解决:

当多个开发者同时修改同一文件时,版本控制系统可以自动检测并提醒冲突的存在。开发者可以通过合并(Merge)或解决冲突(Conflict Resolution)来处理这些问题。

团队协作:

版本控制系统促进团队内的协作,开发者可以共享和讨论代码修改,并进行审查和反馈。团队成员可以更好地了解彼此的工作,并确保项目的一致性和质量。

总之,版本控制是一种非常重要的工具,它提供了记录、管理和追踪文件或项目不同版本的能力。通过使用版本控制系统,开发者可以更好地组织和管理项目,提高团队的协作效率,并控制代码的质量和稳定性

git的主要功能 

Git 是一个功能强大的版本控制系统,具有以下几种主要功能:

版本控制:

Git 可以跟踪文件和目录的更改,并记录每次提交的历史。它可以帮助您了解文件的修改情况,包括何时进行的修改、谁进行的修改等。

分支管理:

Git 支持创建和管理多个分支。分支是独立的开发路径,您可以在不影响主线(主分支)的同时,创建和切换到其他分支进行并行开发。这对于多人协作和同时开发多个功能非常有用。

合并与冲突解决:

在 Git 中,您可以将一个分支的更改合并到另一个分支中。当两个分支同时修改同一部分代码时,可能会发生冲突。Git 提供了冲突解决的功能,允许您手动解决冲突或使用合并工具来自动解决冲突。

回滚与恢复:

Git 允许您回滚到历史提交的版本,无论是回退到之前的版本还是撤销最新的提交。这对于恢复意外删除的文件或修复错误非常有用。

远程仓库与协作:

Git 可以与远程仓库进行交互,例如 GitHub、GitLab 或 Bitbucket。您可以将本地仓库推送到远程仓库,与其他开发者共享代码,并进行团队协作。

暂存区:

Git 提供了一个暂存区(Staging Area),用于暂时存储修改的文件,然后一次性提交这些修改。这样可以精确地选择要包含在提交中的文件,为提交的内容提供更好的控制。

查看历史与比较:

Git 允许您查看提交历史记录,比较不同版本之间的差异,并查看特定文件或目录的修改历史。

除了以上功能,Git 还提供了其他一些有用的功能,例如标签管理、忽略文件、子模块等。Git 的强大和灵活性使其成为广泛使用的版本控制系统,并被众多开发者和开源项目所采用。

git与Gitee/GitHub的关系与区别

大家平时比较常用的代码托管平台应该就是Gitee/GitHub,那么Gitee/GitHub与git之间是什么样的一个关系呢?

Git 是一个版本控制系统,而 Gitee 和 GitHub 都是基于 Git 的在线代码托管平台。

下面是 Git、Gitee和GitHub的关系和区别:

Git:

Git 是一个开源的分布式版本控制系统,用于管理项目的代码版本。它可以在本地计算机上创建和管理 Git 仓库,记录文件的修改历史,并提供分支管理、合并、回滚等功能。

Gitee:

Gitee 是一个类似于 GitHub 的在线代码托管平台,在中国很受欢迎。它提供了将 Git 仓库托管在云端的服务,可以方便地与他人共享代码,并进行团队协作。Gitee 提供了 Web 界面和其他工具,使用户能够更方便地管理和使用 Git 仓库。

GitHub:

GitHub 是全球最大的基于 Git 的在线代码托管平台,广泛应用于全球开源社区和企业。类似于 Gitee,GitHub 也提供了将 Git 仓库托管在云端的服务,并提供了强大的协作功能。

关系:

Gitee 和 GitHub 都是基于 Git 的在线代码托管平台,使用 Git 作为其底层的版本控制系统,因此它们完全兼容 Git,支持 Git 的所有功能。
用户可以在 Gitee 或 GitHub 上创建和管理自己的 Git 仓库,并与他人分享代码。

区别:

Gitee 和 GitHub 在地域上有一定的差异。Gitee 是为中国用户提供的服务,而 GitHub 是全球服务。
用户界面和功能方面略有不同。Gitee 在一些功能上有一些特色,如集成码云 Pages、Gitee CI/CD 等。GitHub 则更注重开源社区和全球开发者的协作。

总之,Git 是一个版本控制系统,而 Gitee 和 GitHub 是基于 Git 的在线代码托管平台。通过 Gitee 或 GitHub,您可以将 Git 仓库托管在云端,并使用其他提供的功能来实现更好的团队协作和代码管理。

git 的基本使用

git的安装

首先确认一下自己的Linux上有没有安装git:

如果出现了版本号,就表明安装了, 没安装就yum安装一下:

sudo yum install -y git 

 创建仓库

建议大家现在gitee/github上面创建远端的仓库,然后再克隆到本地

1.输入仓库名称路径会自动同步

2.创建仓库的是时候无法直接设置成开源,默认私有,不过创建好之后我们可以设置成开源

3.初始化仓库大家可以选一下,语言就按实际情况选择,许可证暂时随便选一个

4.模板一般选择Readme文件, 最后分支模型的话我们现在可以不选

开源设置 

然后我们怎么把远端的仓库克隆到本地,使得我本地写的代码可以上传到github上进行托管呢? 

把Https的链接复制一下:

然后我们后面在这个目录下面写的代码就可以通过一些指令上传到Gitee上进行托管了,那怎么操作呢? 

比如我现在把之前写的那个进度条的代码,拷贝过来:

但是现在这些文件实际并不在真正的git仓库里面, 真正的仓库其实是.git:

如何上传到仓库并推送到远端 

第一步:add 

git add 文件名
将文件添加到暂存区(staging area)
当然直接git add .,就可以把当前目录中所有没添加到暂存区里面的文件添加进去

第二步:commit

git commit -m "提交的内容信息或修改信息"(不要随便写)
git commit 会将暂存区的文件更改提交到本地版本库。

我们第一次提交需要进行一个身份验证,执行git config两条命令就行了,只不过把双引号里面的内容分别替换成自己的邮箱和姓名, 执行之后再commit就可以

第三步:push 

然后我要推送到远端呢?

git push:将本地版本库中的提交推送到远程仓库
需要填入用户名密码(可以配置免密码,这里就不说了),同步成功后,刷新 Gitee/Github 页面就能看到代码改动了

 

查看日志

指令:git log

我们每次提交的详细信息都会在这里展示。 

 

删除文件

再补充一个命令
git status 是一个用于查看 Git 仓库当前状态的命令。通过执行 git status,您可以了解当前工作目录中的文件状态以及与上次提交之间的差异。 

那如果我们想删除某个提交的文件,怎么做呢?

指令: git rm 文件名:将指定的文件从工作目录和版本控制中删除。

比如我想删除一个创建错的空文件: 

但是此时只是在本地删除了,我想要远端也发生变化,怎么做?
再次进行commit和push
 

日志里也可以看到: 

 git status后提示没有文件需要提交:

未完待续.... 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值