在做基于ds18b20温度监控的项目开始时,就一直在使用git仓库,一直没有写过博客,基于今天家里没事,刚好可以写一下git版本控制的使用!废话不多说,上教程!
git
一、什么是git
二、git与svn的区别
三、gitee仓库的创建
四、在树莓派(Linux)上对git进行配置
五、Linux上git的基本操作
一、什么是git
git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
二、git与svn的区别
GIT是分布式的,SVN是集中式管理;
GIT把内容按元数据方式增量存储,而SVN是按文件;
GIT分支和SVN的分支不同;
GIT的内容完整性要优于SVN:
git内容存储使用的是SHA-1哈希算法;
SVN有一个全局的整数编号,而git则是一个SHA-1值作编号:
SVN控制粒度可以到某个目录(当然很少这样做);而git一般是整个项目;
三、gitee仓库的创建
1、登陆gitee码云的官网:https://gitee.com/创建账号和密码后,然后创建仓库:
四、在树莓派(Linux)上对git进行配置
开发者向码云版本库写入最常用到的协议是SSH协议,因为SSH协议使用公钥认证,可以实现无口令访问,而若使用HTTPS协议每次身份认证时都需要提供口令。
1、在Linux上对git进行全局配置
该配置只需要做一次且对该Linux主机上所有git管理项目生效:
pi@raspberrypi:~ $ git config --global user.name "makun"
pi@raspberrypi:~ $ git config --global user.email "[email protected]"
2、Linux上生成SSH key:
pi@raspberrypi:~ $ ssh-keygen -t rsa -C "[email protected]"
3、上传Public Key:
查看public key并拷贝,将它添加到码云个人账号的SSH公钥里:
pi@raspberrypi:~ $ cat ~/.ssh/id_rsa.pub
4、公钥添加测试
pi@raspberrypi:~ $ ssh -T [email protected]
以上图片表示添加成功!
5、git下载测试:
git clone https://gitee.com/ma_kung/mqtt
git clone 后面跟的是你创建时的仓库的链接,如下图
我们在linux上显示的仓库的内容:
以上就是我们创建仓库以及对仓库的简单使用,接下来我将一下我经常用到的Linux上git基本的操作。
五、Linux上git的基本操作
以下图片是我在Linux上写的文件,我们接下来对这些文件进行提交
1、git add
git add:作用就是将我们需要提交的代码从工作区添加到暂存区,就是告诉git系统,我们要提交哪些文件,之后就可以使用git commit命令进行提交了。
2、git commit
git commit 主要是将暂存区里的改动给提交到本地的版本库。
git commit -m ”xxxx“
-m参数表示可以直接输入后面的”message“, 如果不加-m参数,那么是不能直接输入xxx的,而是会调用一个编辑器一般是vim来让你输入这个xxx, xxx即是我们用来简要说明这次提交的语句。
2、git push
在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器对应的分支上。
git push 的一般形式为 pit push ,例如:
git push origin master: refs/for/master,即将本地的master分支推送到远程主机origin上的对应的master分支, origin是远程主机名。第一个master是本地分支名,第二个master是远程分支名。
git push origin master
如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建
git push origin :refs/for/master
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin –delete master
git push origin
如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支
git push
如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用 git branch -r ,查看远程的分支名
关于 refs/for:
refs/for 的意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的,而refs/heads 不需要
以上三个基本命令是我经常做项目用的,如果想了解更多关于git命令的学习,请大家自行百度学习,如以上有什么问题,还请大家指出,谢谢!
https://www.cnblogs.com/tangjian07/p/11282773.html