Linux学习小标兵,专注Linux资讯分享,技术文章分享
分类: LINUX
2021-11-25 22:30:08
从事IT行业的朋友们,不管是做开发,测试或者运维,肯定对git,gitub,gitLab工具都不陌生,它是我们日常工作必不可少的工具。今天就详细介绍git的使用,希望能够对你有所帮助。
(1) git是什么?
git是一个版本控制系统,可以回滚到你提交的任何版本,就好比提交毕业论文的时候,每次修改后都要保存一个版本,以防我们任何一个版本修改错误要改回原来的版本。
(2) git,gitub, gitLab的区别
git是一个工具,gitub是分布式在线版本控制系统,gitLab是gitub的私有版本。
现在应该对git是干什么的有一个初步的印象,下边就详细介绍下git在日常工作中是怎么使用、操作以及有哪些注意事项。
(3) git的使用
(1) 安装git工具
在开始使用 Git 前,我们需要将它安装在计算机上。 如果已经安装,最好将它升级到最新的版本。我们可以通过软件包或者其它安装程序来安装。
在linux系统上,如RHEL或Centos,我们可以执行如下命令:
sudo dnf install git-all
在Macos操作系统上,有多种安装git的方式,最简单的方法是安装 Xcode Command Line Tools,大家可以自行查阅适合自己的方法。
在windows系统上,我们可以在 Git 官方网站下载安装包然后安装。当然,另一种简单的安装方法是安装 GitHub Desktop。 该安装程序包含图形化和命令行版本的 Git注册gitub
(2) 注册gitub
需要用户输入用户名和密码注册一个gitub用户。
(3) 配置gitub
a. 设置git的user name 和email
设置git的username的命令:git config --global user.name 用户名
设置git的email的命令:git config --global user.email 邮箱
注:git config --list 查看当前Git环境所有配置,还可以配置一些命令别名之类的。
b. 检查是否存在SSH Key
我们可以先切换到~/.ssh目录下,然后执行ls查看是否有公钥文件,如下图所示:
c. 若没有,则执行以下命令生成:
ssh-keygen -t rsa -C “邮箱地址”
d. 输入以上命令,然后3个回车
e. 获取SSH Key,执行命令:cat id_rsa.pub
f. Gitub添加SSH Key
g. 登录gitub,然后点击用户头像,选择setting-->SSH and GPG keys-->new SSH key-->取个名字,把之前拷贝的秘钥复制进去,添加就好啦。
h. 验证和修改
可以执行如下命令查看gitub公钥是否添加成功:
ssh -T git@github.com
注:GitHub配置SSH Key的目的是为了帮助我们在通过git提交代码时不需要繁琐的验证过程,简化操作流程。
(4)将Gitub上的项目克隆到本地
git clone项目地址(https url)
(5)将本地工作区文件上传到本地Gitub服务器的暂存区,执行命令:
git add .(当前文件夹下的所有文件)
注:若要选择性上传自己工作区文件,可以在工作区建一个.ignore文件【vim .ignore】
然后将不需要上传的文件名或路径写在.ignore文件
(6)将本地服务器的暂存区的文件提交到本地的master分支,执行命令:
git commit -m "备注信息"
(7)将本地分支的文件上传到远程服务器,执行命令:
git push
(8)将远程文件更新到本地工作区,执行命令:
git pull
(8)查看自己做过哪些,执行命令:
git reflog
现在,你应该能完成所有 Git 基本的本地操作了-创建或克隆一个仓库、进行更改、暂存并提交这些更改、浏览仓库从创建到现在的所有更改历史。 接下来,我么介绍下提交更改过程中遇到冲突怎么解决。
(四)如何解决冲突
当两个(A,B)以上的人同时对同一个文件做操作后push到master,容易产生冲突,假如A先上传,那么这个时候B要去解决冲突,A只需在B解决完冲入后pull文件就可以。
两种方法:
(1)可以手动修改
(2)用Git的merge工具
(a)git mergetool
(b)输入a(弹出比较工具,可以添加,选择,修改自己需要的文件)
(c)然后按照正常上传文件的流程操作就好啦
以上是从git是什么,常用版本控制系统的区别,gitub的配置使用以及在使用过程中遇到冲突怎么解决这4个方面总结了git的基本知识点。当然还有跟深层次的应用,如:git分支,自定义git,git的迁移等等,有兴趣的可以自己去拓展。这些知识是我在接触linux相关知识的时候用到的,在这里要特别感谢《linux就该这么学》这本书,他带我领略linux相关知识,通过这些又拓展了软件相关的知识,扩宽了我的知识面,再次感谢!