从事IT行业的朋友们,不管是做开发,测试或者运维,肯定对git,gitub,gitLab工具都不陌生,它是我们日常工作必不可少的工具。今天就详细介绍git的使用,希望能够对你有所帮助。 (一) git是什么? git是一个版本控制系统,可以回滚到你提交的任何版本,就好比提交毕业论文的时候,每次修改后都要保存一个版本,以防我们任何一个版本修改错误要改回原来的版本。 (二) git,gitub, gitLab的区别 git是一个工具,gitub是分布式在线版本控制系统,gitLab是gitub的私有版本。 现在应该对git是干什么的有一个初步的印象,下边就详细介绍下git在日常工作中是怎么使用、操作以及有哪些注意事项。 (三) 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公钥是否添加成功: 注:GitHub配置SSH Key的目的是为了帮助我们在通过git提交代码时不需要繁琐的验证过程,简化操作流程。
(4)将Gitub上的项目克隆到本地 git clone项目地址(https url) (5)将本地工作区文件上传到本地Gitub服务器的暂存区,执行命令: git add .(当前文件夹下的所有文件) 注:若要选择性上传自己工作区文件,可以在工作区建一个.ignore文件【vim .ignore】 然后将不需要上传的文件名或路径写在.ignore文件 (6)将本地服务器的暂存区的文件提交到本地的master分支,执行命令: git commit -m "备注信息" (7)将本地master分支的文件上传到远程服务器,执行命令: git push (8)将远程master文件更新到本地工作区,执行命令: 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相关知识,通过这些又拓展了软件相关的知识,扩宽了我的知识面,再次感谢!
|