为什么需要学习git软件
我们在日常开发工作中需要对代码资源(html,css,js,java等)以及文档资源(img,doc,xls,ppt等)进行管理,所以就需要SCM工具(如svn,git等)进行管理。
![](https://img-blog.csdnimg.cn/0c4bdd9a548b4601ab13b5248bb4b294.png)
概述
版本控制目前分为集中式版本控制和分布式版本控制
![](https://img-blog.csdnimg.cn/e142059c5621423a83a6e4517e1cbf62.png)
集中式版本控制缺点
- 中央服务器出现故障,则无法正常进行上传下载本地资源,有可能导致文件丢失。
- 文件冲突,多人协作开发时进行上传下载文件时可能导致冲突。
![](https://img-blog.csdnimg.cn/5f435c046fd04e0ab7536bec63805e44.png)
分布式版本控制缺点
- 由于需要搭建一个和远程服务器一模一样的资源库,所以需占用本地资源。
- 对网络要求比较高,否则本地和远程服务器的资源无法同步。
下载安装
我们进入官网进行下载:Git - Downloadshttps://git-scm.com/downloads其中包括了git和git的客户端访问工具GitHub Desktop
![](https://img-blog.csdnimg.cn/40e2fc62fb644b6b928df36f63465d1e.png)
注意:
安装好git,右击出现Git GUI Here(不好用,所以用GitHubDesk代替) 和 Git Bash Here(Git 命令行)
git基本概念
commit
注意:
git会对本地仓库路径下的文件与本地git仓库中文件进行对比,不论新增,修改,删除,都需要进行commit提交操作才能保持本地文件同步。
branch-分支
![](https://img-blog.csdnimg.cn/99c83486256143cc944a0918f47d402f.png)
多人协作开发时,git提供了分支功能,我们每个开发者将自己的文件提交到自己的分支当中,最后将每个人的分支进行合并,极大的减少了文件冲突。
版本号
![](https://img-blog.csdnimg.cn/94e216a93ee84c5488ecfd4a7622c639.png)
GIT命令
仓库操作命令
git init
![](https://img-blog.csdnimg.cn/5cf2a969461c41f2a80d8695ba7ea343.png)
git clone
![](https://img-blog.csdnimg.cn/a98dd35841bf4dfc94d55d15bbb209ed.png)
提示: git clone +服务器资源地址 +自定义项目名称(可选项)
git config
![](https://img-blog.csdnimg.cn/9c10cd40c88b4b949a60b88e0a326df6.png)
文件操作命令
git status
![](https://img-blog.csdnimg.cn/fe6fa0cf20e84f378e195d5bb8f8ca34.png)
git add
![](https://img-blog.csdnimg.cn/7c6c25d4497d4630927af5bd3c282192.png)
git rm --cached
![](https://img-blog.csdnimg.cn/b0be48f305754522a342ac6dcb84b451.png)
git commit (-m 表示提交备注信息)
![](https://img-blog.csdnimg.cn/4cc0d6f0ed6048e18ba48faa039561b8.png)
git log(--oneline表示按行显示)
![](https://img-blog.csdnimg.cn/c6c641b0f9394fa7a85e4dc9bcc3d99b.png)
git revert
![](https://img-blog.csdnimg.cn/80dc21772f91482ca2b2272bd6d69eb5.png)
分支操作命令
git branch (注意创建分之前需要提交操作,否则创建失败)
![](https://img-blog.csdnimg.cn/400243b02ab642ab862a9323bbc84fbd.png)
git checkout
![](https://img-blog.csdnimg.cn/87bc43dccf2b48159dc6453fe73a53fe.png)
git checkout -b
![](https://img-blog.csdnimg.cn/d9f77ffb2bec4b3cb499d25334641b06.png)
git branch -d
![](https://img-blog.csdnimg.cn/2e9ac8eac4b641f2b9e5f543222f8dda.png)
git merge(当各分支存在相同文件时,需要手动解决冲突后进行提交至存储区)
![](https://img-blog.csdnimg.cn/d7001292f64945758cd60e67c8ced8d0.png)
标签操作命令
git tag (后面加上tagName和已提交的版本号)
![](https://img-blog.csdnimg.cn/564c4a7b450f48498bb9d735b76393bc.png)
![](https://img-blog.csdnimg.cn/358d43b6038442c392f2fa2ac1f7501e.png)
![](https://img-blog.csdnimg.cn/dc420280dde74b9daae15964c31eee97.png)
远程仓库操作命令
git remote add
![](https://img-blog.csdnimg.cn/dd3507ba822b4fcbb6bf81063d5c0a81.png)
![](https://img-blog.csdnimg.cn/f7738bf046584eff9c77beeb50f4be9a.png)
git push origin
![](https://img-blog.csdnimg.cn/bcee4334020a4b89994241206b119e7e.png)
注意:若采取的是SSH,还需要进行认证操作,其中需要生成认证证书等过程
git pull origin
![](https://img-blog.csdnimg.cn/52719a43d3464e59a2ec074d7c58cb6a.png)
扩展
我们在开发过程中可以通过IDE集成到第三方托管平台(如github,gitee等),但我们也可以自己搭建一个代码托管平台,比如通过极狐-gitLab软件搭建,它是基于Linux系统上安装执行的,我们可以通过官网下载https://packages.gitlab.com/gitlab/gitlab-ce,安装成功后可通过IDEA集成GitLab.具体搭建过程以及集成IDE等操作可参考自定义代码托管平台GitLab