赞
踩
历史背景
版本控制
代码托管平台
linux上使用git
git的发明者linus
大家可能多多少少都用过 Github, Gitee 等代码托管平台。而它们的名字中就带有 git 的字段。
实际上这些平台都是可以通过 git 来进行管理的,而 git 本身是一个开源的、免费的 分布式版本控制工具 ,通过 git 可以快速高效地处理代码的合并,项目的管理等功能。
Git 是一个分布式版本控制工具
版本控制是一种记录文件内容变化,以便查阅指定版本修订情况的控制系统。
版本控制最大的优点就是记录了以往的版本,可以随时查阅版本记录,从而让用户能查看历史版本。
举个例子,论文我们应该都写过。而论文从开始写,到交上去,可能会修正很多遍。
而版本,就是每次的论文样式,每一个文件都是一个版本,都记录着之前的文件。
而版本控制就是将这些版本记录下来,方便用户查阅之前的版本 。
而由于版本控制,当进行团队协作时也更加方便,通过版本控制就可以更加清晰的了解各版本的变化,从而做出升级和改进。
版本控制工具分为两类,集中式版本控制工具和分布式版本控制工具。
集中式版本控制有一个特点就是 只有单一的集中管理的服务器 。在服务器中,保存着所有文件的修订版本。
在协同工作时,小组成员都会通过客户端链接到服务器,通过服务器来完成提交更新。
这种版本控制可以通过管理员来掌握小组成员的动作情况,管理权限。管理成本低,管理模式集中。
但是这种版本控制有一个致命的缺陷:服务器发生故障,小组成员就无法协同工作 。
分布式版本控制工具通常有客户端和服务端。
客户端提取的不是这些文件版本,而是把代码仓库完整的通过镜像的方式克隆到本地,就是 本地库 。
这种机制也让仓库的控制性更加好。如果一处协同工作的文件故障了,那么可以通过其他客户端的本地库进行恢复。
而分布式版本控制工具也解决了集中式版本工具的弊病 :
当服务器崩掉时,也可以进行开发,因为存在本地库,通过本地库就可以进行版本控制
在小组成员的客户端上保存着完整的项目备份,提高了安全性
而这种控制方式也提高了使用者的舒适度 :
如果用户不想要把自己的项目上传到远端,也可以将项目上传到本地,进行本地式的管理。
对于协同开发的用户,更是可以将项目上传至服务器,让服务器进行数据管理,避免数据丢失,更加安全。
常见的代码托管平台有github,gitee等。
这些代码托管平台的特点就是 继承了Git 代码仓库托管的功能,并且增加了许多个性化的功能,如代码片段分享,订阅等特色功能 。
除了通过Git 进行版本的控制,用户更能在网站上直接进行操作,让用户在网站上也可以完成对版本的修改。
说白了就像是抽象出了一块独立空间,更贴近于用户体验。增加了个性化功能,让代码托管平台不仅能版本控制,更作为一个协作的平台,变成一个更大的交流圣地。
程序员可以在Github 或Gitee 上进行交流,且在上面也有着许多开源项目,让更多人见识到开源的魅力。
而Github 和Gitee 的区别:
Gitee 是国内的,Github 是国外的
Github 用户基数较多,开源项目更加丰富
Gitee 的用户大多是国人,且是中文界面更容易让人接受
Github 的服务器在国外,如果不使用加速器的话访问速度相对较慢,而Gitee 则由于服务器在国内的原因,访问速度较快
前面讲了这么多,我们总算对 git 有了一些认识,那么接下来我们就在 LInux 上进行操作。
先用 git --version 检查一下 LIinux 下有没有安装 git :
显然是安装了的,如果没有安装的可以使用安装:
sudo yum install -y git
紧接着到Gitee 或Github 上创建一个仓库,我使用的是Gitee 。
首先选择新建仓库:
然后设置仓库名、是否开源,初始化,设置模板等…
然后点击克隆,以 https 的形式复制远端仓库的链接:
而联合开发和删除仓库在都在仓库的管理部分,相对简单
使用命令:
git clone https格式网址
将远端仓库克隆到本地,输入指令后需要输入用户名和密码:
(注:只有私有的克隆时才需要输入用户名和密码,开源的话就不用输)
然后目录下就出现了一个目录,名字就是上方创建目录时生成的路径名:
然后进入目录,在显示一下隐藏文件,可以发现一个 ,git 的隐藏目录。
而之前我们仓库中的文件也都在这里,就比如 Readme 文件。
同时也出现了一个叫做 .git 的目录。.git 实际上就是仓库,也就是本地库,git 中会将修改记录以二进制的形式保存在文件中。
使用 tree .git 查看一下目录内容:
框出来的部分就是修改记录。
注: .git 中的内容不要改!一定要记好了!
首先,进行一下内容拷贝,将上次写的进度条代码拷贝到当前目录下:
当内容拷贝过来之后,需要将本文件夹内所有内容提交到暂存区 :
git add .
在使用指令查看一下暂存区状态:
git status
下面显示了 new file ,说明我们已经将文件提交到了暂存区。
接着,将暂存区的文件提交到本地库 :
git commit -m "日志信息"
"" 引起来的部分为上传的日志,日志一定要好好写 ,这表明这部分代码是什么,或者新增加了什么功能。
并且别人是可以看到你的日志信息的,只要你的仓库开源,别人将仓库克隆到本地后,就可以使用 git log 或 git reflog 查看到你的日志信息:
git reflog 为查看版本信息,git log 为查看版本详细信息。
当第一次提交时,会遇到一个小问题:
框出来的话表明你需要设定一下自己的邮件和用户名,方便之后别人查看到你的日志后和你及时联系。
这时需要输入两行指令,就是第二个方框中的内容:
这时框起来的部分出现,就表明已经将暂存区的内容提交到了本地库,也就是 .git 目录中。
而以上的 add 和 commit 的操作就是将文件保存到本地库的动作(还是在本地)。
而这它们的逻辑关系可以用一张图表示:
接下来将本地库内容推送到远端 :
git push
输入指令后,要求我们输入用户名密码,注意这里的账号是一开始克隆仓库时使用的用户名和密码。
输入后呈现这样的格式就说明推送成功了。
可以设置免密码提交,操作很简单,可以百度一下。
注:提交时可能会出现这样的告警
这个告警的影响其实不大,只需要修改全局配置,让每次 push 的时候总是显示即可。
对于 matching 和 simple ,分别输入:
- git config --global push.default matching
- git config --global push.default simple
进行完这些步骤,切换至 gitee 查看一下是否提交成功:
已经提交成功了(后面显示的时间,是把文件放到本地库的时间)
总结一下 git 三板斧:
git add . :将内容提交到暂存区
git commit -m “日志信息” :将内容提交到本地库,日志要好好写
git push :将本地库中的内容推送到远端仓库
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。