1.Git
1.Git概述
1.分布式与集中式及区别
- 集中式:可以进行版本控制。点对点,若b要在a的基础上开发,则a未将代码上传到中央服务器上之前无法动工;若服务器宕机,则也无法进行工作
- 分布式:版本控制,没个本地计算机都是一个服务器,其保存了完整的项目(包括历史记录)
2.Git工作机制
2.Git命令
# 1.用户签名
##这里设置的两个用户签名均是虚拟的
##不用写真实name/邮箱,只是为了获得代码提交者信息
$ git config --global user.name xxx #设置用户名
$ git config --global user.email xxx #设置用户邮箱
# 2.本地库
$ git init #初始化本地库
$ git status #查看本地库状态
# 3.工作区->暂存区
##将文件添加到暂存区
$ git add xxx
##将文件移出暂存区
$ git rm --cached "xxx"
# 4.暂存区->本地库
$ git commit -m "描述信息(required)" xxx #将xxx提交到本地库
# 5.对版本的控制
$ git reflog #查看历史版本(简)
$ git log #查看历史版本(全)
$ git reset --hard 版本号 #版本切换,版本号用reflog的
1.add提交到暂存区
- 没有add的文件仍存在于工作区,git无法追踪
- 新增/修改的文件,均要重走一遍add流程(add->commit)
2.commit提交历史版本
3.版本控制
1.操作历史版本
底层实现:HEAD恒指向main分支,切换的是main指向
2.查看历史版本
- reflog:
可以查看历史版本信息、版本切换记录、分支切换记录,指针指向最新版本的版本号和描述信息
- log:
直接查看当前main指向的版本信息
3.Git分支
在版本控制过程中,同时并行推进多个功能开发,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。(分支底层为指针的引用,切换HEAD指向)
Git底层的指针控制:
1.分支命令
$ git branch xxx #创建xxx分支
$ git branch -v #查看分支
$ git checkout xxx #切换到xxx分支
$ git merge xxx #将指定分支xxx合并到当前分支上
2.代码冲突
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个,必须人为决定新代码内容。
这时,需要我们手动去修改,然后add->commit(不带文件名)
4.团队协作
1.团队内协作(需要拉取为团队成员)
2.跨团队协作
2.IDEA集成Git与Gitee
0.环境配置(推荐全局配置)
git
gitee
1.配置忽略文件git.ignore
配置原因:IDEA中有些文件不参与项目的部署,忽略之后可以解决项目间的版本差异
---------未实操验证----------
git.ignore文件:
# Compiled class file
*.class
# Log file
*.log
target
.idea
配置全局.gitconfig:
[core]
excludesfile = C:/Users/asus/git.ignore
2.初始化(git init)
3.添加到暂存区(git add)
4.添加到本地仓库(git commit)
2-3.一次完成add与commit
5.推送代码(git push xxx)
6.查看历史版本信息(git reflog/git log)
IDEA上:
Gitee上:
7.版本穿梭(git reset --hard xxx)
Git->Show Git Log->选到对应的版本->Checkout Revision…
8.分支
1.创建分支(git branch xxx)
图三默认勾选,创建之后立即切换到此分支
完成add->commit->push之后,在gitee中可以看见,新的分支已经创建好了
2.切换分支(git checkout xxx)
3.分支合并以及代码冲突(git merge xxx)
1.分支合并
2.选择要合并到当前分支(main)的分支
3.代码冲突
3.1双击进入后:
3.1.1二选一
3.1.2 差异合并
x:不要此分支,>>或者<<:将此分支合到Result,都点的话,main和test字符串均会过来
4.合并结果,在log中可以看到分支合并的记录