一、Linux之父与Git的故事:
- Linux之父叫做“Linus Torvalds”,我们简称为雷纳斯。
- Linux是开源项目,所以在Linux的早期开发中,许多世界各地的能力各异的程序员都参与到Linux的项目开发中。那时,雷纳斯每天都会收到许许多多邮件,里面是每个程序员自己的代码,雷纳斯要审核其中的代码并且不断添加到Linux的源码中。
- 这种工作使得雷纳斯不断压缩自己的私人时间,终于他受不了了。于是他想要有一款分布式版本控制系统,可以让开发者在本地创建分支和进行合并操作,无需每次都与中央服务器通信。也能够让开发者可以独立工作并在本地仓库中进行提交,然后再与其他开发者同步更改
- 于是他就找到了BitKeeper,但是BitKeeper是商业软件,需要付费使用。违背了雷纳斯对开源原则的信仰,并且使用收费的版本控制软件可能会排斥一些开发者,限制了他们参与项目的能力。于是雷纳斯和其团队决定放弃使用BitKeeper。
- BitKeeper的老板听闻后,决定免费向Linux社区提供BitKeeper的使用权限。后来由于社区内部的一些矛盾和冲突(Linux内核开发社区中的一些成员对于依赖BitKeeper这样一个闭源的商业软件一直存在不满。他们担心使用一个闭源工具来开发开源软件会带来潜在的问题,比如数据锁定和对商业公司的依赖。于是Andrew Tridgell,知名的开源开发者(Samba项目的主要开发者之一),尝试逆向工程BitKeeper的协议以便创建一个开源的替代工具。这一举动被BitMover公司视为威胁,认为这可能违反了他们的使用协议。),最终导致BitMover公司决定收回Linux社区的免费使用权限。
- BitMover公司撤回Linux社区免费使用BitKeeper的权限,对Linux内核的开发产生了重大影响,因为开发者们突然失去了他们依赖的版本控制工具。面对这一情况,雷纳斯迅速采取行动。决定自己开发一个新的版本控制系统。并在短短的几个星期内就完成了基本功能。且进行了开源,于是乎Git就诞生了。
- 由于Git是开源软件,内核开发者迅速采用了它,并对其进行了改进和扩展。
- Git不仅解决了Linux内核开发的版本控制问题,还迅速成为全球最流行的版本控制系统。现在被广泛应用于各种开源和商业项目,许多开发团队使用它来管理代码库。
二、Git操作:
2.1Git创建仓库:
- 创建时的步骤:
- 创建完成后的样子:
2.2删除仓库:
- 点击管理->删除仓库
- 确认删除
2.3创建本地仓库:
- 复制远端仓库链接:
- 查看当前Linux是否安装了git:
git --version
- 如果没有显式版本,可以先安装:
sudo yum install -y git
- 本地先创建一个目录,然后输入指定代码,建立两个仓库之间的链接:
git clone + 远端仓库链接
- 配置完成:
2.4提交本地代码到远端仓库:
- 将代码放到刚才下载好的目录中
git add .
- 提交改动到本地:
完成该步骤之后,已经将本地代码的变化添加到了本地的.git仓库中。
git commit -m “本次提交的核心信息,不要乱写”
- 同步到远端服务器上:需要填入用户名密码.同步成功后,刷新 Github 页面就能看到代码改动了.
git push
2.5 查看提交日志:
git log
2.6同步远端仓库到本地:
- 如果有人克隆我的开源仓库到本地,当我更新了自己的本地仓库并且同步了远程仓库。其他人想要在克隆的本地仓库看到我的更新,就需要以下指令先更新自己的本地仓库。
git pull
2.7多人协同,如何判断其他人是否有过提交?
- 正常提交,如果push成功,说明远端仓库没有被修改过。
- 如果远端仓库有别人更新,这次push就不会成功,就需要自己先git pull将远端仓库和自己本地仓库同步,然后再push。
2.8查看当前仓库是否完全提交:
- 使用指令git status查看当前仓库是否有文件未被提交。
- 如果有文件未被提交,会说明哪个文件没有被提交。
git status
三、首次git,需要的配置解析:
- 首次向git提交代码,需要提交邮箱和用户名:
- 只需要将以上两条代码分别复制,然后将双引号中的内容更改为自己的邮箱和用户名即可。
- 之后的提交都可以正常提交了。
四、.gitignore文件解析:
- 可以理解为一个文件过滤器,过滤掉不想上传到远端仓库的文件。
- 向.gitignore文件中添加文件后缀,所有在该文件中声明的后缀,在上传文件到远端仓库时,都会被过滤掉。