版本管理工具之Git
Git是什么?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
Linux Ubuntu安装Git
sudo apt install git
CVS及SVN都是集中式的(中心化)版本控制系统,而Git是分布式(去中心化)版本控制系统,
集中式和分布式版本控制系统有什么区别呢?
集中式版本控制系统
版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
缺点:
集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。
分布式版本控制系统
分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需在有网络的时候把各自的修改推送给对方,就可以互相看到对方的修改了。
优点:
1、分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
2、Git极其强大的分支管理
注意:分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
Git 命令
init : 在本地创建⼀个新的库
clone : 从服务器克隆代码到本地 (将所有代码下载)
status : 查看当前代码库的状态
add : 将本地⽂件添加到暂存区
commit : 将代码提交到本地仓库
remote : 远程仓库管理
rm : 删除
push : 将本地代码推送到远程仓库
pull : 将远程仓库的代码拉取到本地 (只更新与本地不⼀样的代码)
log : 查看提交历史
branch : 分⽀管理
checkout : 切换分⽀ / 代码回滚 / 代码还原
diff : 差异对⽐
merge : 合并分⽀
.gitignore : ⼀个特殊⽂件, ⽤来记录需要忽略哪些⽂件
ssh-key 的使⽤
使用步骤:
-
init : 在本地创建⼀个新的库
一开始目录下为空,使用命令后,该目录下出现了一个隐藏文件,这就是在该文件夹下创建了一个新的git仓库,此时这个git仓库为空 -
status : 查看当前代码库的状态
此时该git仓库为空
创建一个aaa .py文件,然后再查看当前代码库的状态
git是一个很友好的软件,会提示一些命令,它提示可以用 git add 的命令将文件提交到暂存区中去 -
add : 将本地⽂件添加到暂存区
这里 git add . 是将该目录下所有的未被跟踪的文件都提交到暂存区中,这里只有一个aaa .py文件,所以只提交了一个文件,也可以使用 git add aaa .py 提交文件 -
rm : 删除
上面提示了一个命令,git rm – cached < file >表示从暂存区中删除,如果没有加上 – cached ,那就是从git库中删除
可以发现暂存区中就没有aaa.py文件了,但是git会提醒你可以添加目录下的aaa.py文件到暂存区,将该文件添加到暂存区,然后使用新的命令,将暂存区的文件提交到本地git库
- commit : 将代码提交到本地仓库
commit - m " xxxx" 表示对此次提交添加日志,m的意思是message,可以理解为添加注释
如果以前没有用过git,第一次提交会失败
提示了两行代码,就是要告诉git你是谁
只要把引号里的内容改成自己的邮箱账号和自己的名字就行了
再运行提交的命令,就提交到本地仓库了,此时暂存区就为空了
-
log : 查看提交历史
也叫查看日志,提交了一条记录
修改aaa.py文件,添加一个函数,然后在提交到本地git仓库
编辑aaa.py文件,使用命令 vim
添加到本地仓库
-
远程仓库
这里远程仓库连接的是Github,如果没有用过,可以参考该篇文章
https://blog.csdn.net/qq_44614026/article/details/96018128
1)首先在GitHub上创建一个空仓库
2)创建后是这样一个界面
因为在本地已经创建了仓库,所以使用第二栏
3)在Ubuntu终端输入代码
git remote add origin https://github.com/dzlnzwyyhy/test.git
输完该代码不会有任何的提示
其实在config文件中作了配置的修改
可用代码查看
vim .git/config
可以看一下.git目录下的文件
config是git的配置文件,可以用vim手动修改;
objects,提交代码的内容,都在该文件下
其他不多做了解,现在已经和远程仓库建立了连接,接下来就是将代码推送到远程仓库
- 将代码推送到远程仓库
使用命令
git push -u origin master
可能第一次需要输入GitHub的账号名称和密码
查看GitHub,可以发现代码文件就传过来了
顺便可以查看一下config文件
vim .git/config
多出几行代码,这个就是提交的配置
- pull : 将远程仓库的代码拉取到本地 (只更新与本地不⼀样的代码)
现在GitHub上的远程仓库只有一个aaa .py文件,
可以多拆创建一个Readme文件,
然后,使用git pull 命令将远程仓库的文件拉下来
这样,就多出来一个Readme文件
查看一下日志,这是远程仓库的日志,所以我们从远程仓库拉文件的同时,也能将远程仓库的日志拉下来