关于Git的一些基础用法
- 1. 前言
- 2. 使用GitHub/gitee创建项目
- 2.1 创建账号
- 2.2 创建项目
- 2.3 下载仓库到本地
- 2.4 提交代码到远端仓库
- 2.5 查看日志
- 2.6 同步远端仓库和本地仓库
1. 前言
首先说一个冷知识(好像也不是很冷),Linux和git的创始人是同一个人,都是蕾纳斯托瓦兹。
git也叫版本控制器,就是将被管理的内容(文本),按照变化来进行管理的软件。这个软件的的最终目标就是用户想要哪个变化的版本,git都可以为用户提供。
- git是一个软件,既是客户端又是服务器。
- git指挥记录变化的内容。
- git是分布式软件,去中心化的。
github/gitee是网站,基于git软件搭建的网站,作用是让版本管理可视化。
首先用命令检测Linux下git是否安装
git --version
该命令用于检测git的安装版本的
现在的服务器一般默认都是有git的,如果没有安装,则执行以下命令:
sudo yum install -y git
2. 使用GitHub/gitee创建项目
2.1 创建账号
这个不难,相信大家都在游戏或者各种app创建过账号吧,参照官网提示一步步来即可。
2.2 创建项目
这里用GitHub做演示,gitee基本相似。
- 在账号创建并登陆成功后,点击
+
,然后点击New repository按钮新建项目
- 然后跳转到的新页面中输入项目名称(注意, 名称不能重复,系统会自动校验。校验过程可能会花费几秒钟)。校验完毕后,在Description那一栏书写你对该仓库的描述(就是你用这个仓库干啥),然后点击下方的 Create repository 按钮确认创建。
- 在创建好的项目页面中点击
Code
选项查看自己的HTTPS地址,并复制项目的链接,以备接下来进行下载。
在GitHub/gitee中我们推送代码到远端时也可以采用SSH方案,SSH方案需要配置各种密钥比较麻烦,而HTTPS方案只需要输入账号密码即可,所以不推荐对于刚跨进计算机这个行业的我们。
2.3 下载仓库到本地
到自己Linux对应的目录下(这个目录可以随便搞),输入指令:
git clone 你的https地址
如:git clone https://github.com/Merrill99/Linux-practice-codes.git
(我这个仓库为公开仓库,所以不需要输入账号,如果为私有仓库那么需要输入你对应的账号和密码)
此时,在Linux中出现了一个目录,该目录就是我们在GitHub上所建立好的仓库。
将远端仓库克隆到本地之后,它会帮我们下载一个.git
文件,拥有.git
文件才真正意义上的git仓库,本地仓库就是.git
。并且我们平常所说的把本地仓库的代码同步给远端仓库,就是同步.git
文件。
注:这个.git
文件默认是隐藏的,不要做任何修改,否则这个仓库就会出问题了。
2.4 提交代码到远端仓库
- 首先保证你的项目/代码在你的仓库目录中。
- 添加代码到本地仓库
git add filename
如:git add .
表示把当前目录下的文件添加到git仓库中,git会自动扫描当前文件下的文件有没有被放入到git仓库中。
- 提交改动到本地
git commit filename -m "log"(日志,注意这里不能胡写,必须为你本次代码更新的核心步骤)
如果你在commit
的时候出现这种情况,说明git不知道你所要提交的账户是哪一个。
输入以下命令把自己的账户和用户名输入进去即可:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
例如:
此时代码已经被提交到本地仓库了。
- 将本地仓库的代码推送到远端仓库,本地仓库和远端仓库进行信息同步变成一样的。
git push
提交成功!
这时候我们就在能在GitHub的仓库看到我们的项目代码了~
如遇提交到GitHub无法验证访问的情况,也就是:
fatal: Authentication failed for ...
可能是因为github 现在不让使用 用户名+密码 的方式进行验证,
可以跳转此文章:https://blog.csdn.net/m0_73156359/article/details/135585372
2.5 查看日志
git是支持查看日志的,命令如下:
git log
2.6 同步远端仓库和本地仓库
命令:
git pull
(这条命令感觉很形象,把远端的仓库拉到本地来)
这条命令一般在多人开发时会使用到,那么在多人操作时,对方怎么知道代码是否需要同步呢?
对方不管任何人,只要自己一直在开发,只要需要就push提交
- 如果提交成功,则说明在开发过程中,没有其他人提交。
- 如果提交失败,显示冲突了,则说明别人先我一步提交了,此时就需要用到
pull
命令来进行一次同步了!