1、简介
-
实现跨区域多人协同开发
-
追踪一个或多个文件的历史记录
-
组织和保护你的源代码和文档
-
统计工作
-
并行开发,提高开发效率
版本控制的分类:
- 本地版本控制:记录文件每次更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人使用。
- 集中版本控制:所有版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。(
SVN
等) - 分布式版本控制:每个人都拥有全部的代码,所有版本信息仓库全部同步到本地的每一个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交。只需在连网后提交到相应的服务器上。由于每个用户那里都保存的都是所有版本数据,只要一个用户的设备没有问题就可以恢复到所有的数据。(
Git
)
2、Git的安装和环境搭配
安装:
方式一: Git官网:https://git-scm.com/下载对应的版本,但是官网下载非常慢
方式二:淘宝镜像下载:https://npm.taobao.org/mirrors/git-for-windows/
下载 后然后进行无脑安装。安装成功后,在开始菜单栏中就会存在。鼠标右键桌面也会有Git Bash和Git GUI这两个选项。
Git Bash:Unix和Linux风格的命令行,使用最多,推荐使用
Git CMD:windows风格的命令行
Git GUI:图形界面的Git。
3、Git的配置
- 查看全局配置命令:
git config -l
- 查看系统配置命令:
git config --system --list
- 查看用户配置命令:
git config --global --list
-
设置用户name命令:
git config --global user.name 用户名
-
设置用户邮箱email命令,建议使用真实邮箱:
git config --global user.email LHJ160414@163.com
Git的配置中第4、5是必须都要配置的,否则导致后面无法上传代码。
4、Git基础理论
- 工作目录(Working Directory):本地存放代码的文件,编写代码的目录文件。
- 暂存区(Stage):可以临时存在你修改的文件,本质就是一个文件,在工作区通过
git add .
将所有修改的文件加入的暂存区中。 - 资源库(History/Repository):本地仓库,安全存放数据的位置,如果在暂存区中添加了新的文件,可以通过
git commit
将暂存区的文件提交到资源库中。 - 远程仓库(Remote Directory):远程仓库,托管代码的服务器,可以通过
git push
将本地仓库的文件提交到远程仓库中。
5、Git项目搭建和克隆
搭建:
使用 git init
命令来初始化一个git项目,需要进入创建git项目的目录下。
克隆:使用 git clone url
命令从远程仓库中克隆项目到本地,url
是远程仓库的地址,一般是gitee
和github
。
6、Git基本操作
Untracked
:未跟踪状态,在工作目录中存在,但是没有加入到其他工作区。Unmodify
:文件已经在本地仓库中,但是未修改与版本的快照一样,这类文件可以进行修改,也可以使用git rm
移除版本控制。Modify
:文件已经修改,但是没有进行其他操作,这类文件可以git add
到暂存区中,也可以使用git checkout
恢复到之前未修改的状态及Unmodify
状态。Staged
:暂存状态,可以使用git commit
提交到本地仓库中,这样文件就变成了UnModify
状态,也可以使用git reset HEAD filename
把文件取消暂存,修改为Modify
状态。
git status [filename] # 查看文件状态。
git add . # 将文件存放到暂存区
git commit -m [message] # 将文件提交到本地仓库,message是提交携带的信息
- 忽略文件中的空行或以#开头的行。
- 可以使用Linux通配符:
*
表示匹配所有,?
表示一个字符,[abc]
表示可选字符的范围,{str1,str2,....}
表示可选字符串的范围。 - 如果名称前存在 !表示这个文件将不会被忽略。
- 如果名称前面添加 / 表示忽略的文件在此目录下,但子目录下的文件不忽略。
- 如果名臣后面添加 / 表示忽略这个目录下子目录的文件。
*.txt # 获取所有.txt结尾的文件
!test.txt # 表示不忽略test.txt文件
/temp # 表示忽略的文件在temp目录下的文件,子目录下的文件不忽略
test/ # 表示获取test/目录下的所有文件
test/*.txt # 表示会忽略test/目录下的所有.txt结尾的文件,其他文件不忽略
# 常见忽略文件
*.class
*.log
*.lock
*.jar
*.war
*.war
target/
.idea/
*.imi
*velocity.log*
.apt_generated
.factorypath
.springBeans
*ipr
*iws
.idea
.classpath
.project
.settings/
bin/
*.log
tmp/
*rebel.xml*
7、Gitee
- 注册
Gitee
账号:Gitee官网:https://gitee.com/ - 配置本地SSH公钥
- 生成SSH公钥:进入
C:\Users\LHJ16\.ssh
目录下,默认这个目录是空文件夹,使用ssh-keygen
命令生成公钥。

- 在码云中设置的安全设置中,将公钥复制到里面去

- 连接
Gitee
远程仓库:在上面步骤的基础下,并配置了user.name
和user.email
。
克隆方式:通过克隆一个远程仓库,然后将生成的.git
文件夹放入到自己的工作目录下就可以使用命令进行版本控制。
初始化方式:通过git init
初始化一个本地仓库,然后通过以下命令连接远程仓库。
# 选择下面一种方式即可
git remote add origin 仓库的SSH
git remote add origin 仓库的url
8、Git 分支
Git常用分支命令:
git branch # 查看本地分支
git branch -a # 查看本地和远程的所有分支
git branch -r # 查看远程仓库的所有分支
git branch [新分支名] # 新建一个分支,但是依然在当前的分支
git checkout [分支名] # 切换到某个分支
git checkout -b [分支名] # 新建一个分支,并切换到新分支下
git merge [分支名] # 将这个分支的代码合并到主分支上
git branch -d [分支名] # 删除某个分支
git push origin [本地分支名]:[远程分支名] # 新建远程分支,本地分支和远程分支名称建议相同,但是也可以修改
git push origin --delete [分支名] # 删除远程上的分支
9、拓展
9.1、Git插件
- 浏览器插件:https://gitee.com/oschina/GitCodeTree
- idea的
Gitee
插件:在idea的插件市场中搜索gitee
,输入gitee
账号后,可以克隆这个用户的所有项目,也可以直接在idea中直接push代码,默认是https
方式。


.net/2022/03/16/BIyRPtNdxQSovuZ.png" alt=“image-20220316164025035” style=“zoom:67%;” />

[外链图片转存中…(img-FHkBwmiI-1647421505777)]