1.Git介绍
Git是一个免费开源的分布式版本控制系统,使用一个“仓库Repoisitory”的数据库来记录文件的变化,仓库中的每个文件都有一个完整的版本历史记录,可以看到谁在什么时间修改了哪些文件的哪些内容,在需要的时候也可以将文件恢复到之前的某一个版本。
1.1版本控制系统
2.Git的安装和配置
2.1Git的安装
Git官网https://git-scm.com安装,安装完成之后,在终端输入git -v查看版本信息,如果有说明安装成功了,如果没有,还需要配置环境变量:
将C:\Git\bin(看自己安装在哪个文件夹下)配置在系统环境变量中。
Git有三种配置模式:
2.2Git配置用户名和邮箱
3.新建仓库(git init/git clone)
(1)新建文件夹
(2)进入learn-git文件夹,在该文件夹下新建一个仓库
(3)ls -a查看当前目录下是否有.git文件
.git目录存放了Git仓库的所有数据,我们可以通过ls -altr来查看一下
(4)移除.git文件,发现learn-git文件夹不再是一个仓库
(5)在learn-git这个文件夹下来,新建一个my-repo仓库
此时,learn-git下有.、..和my-repo三个文件,而my-repo文件夹下有.git、.和..三个文件。
(6)使用git clone从远程仓库创建。(基于https)
此时learn-git文件夹为:
4.工作区域和文件状态。
Git的本地数据管理分为工作区、暂存区和本地仓库。
工作区:资源管理器能够看到的文件夹;
暂存区:用于保存即将提交到仓库的修改内容;
本地仓库:git init创建的仓库,包含完整的项目历史。
5.添加和提交文件
git status:查看仓库状态。
git add: 将文件添加到暂存区。
git commit -m "message" file1.txt: 将file1.txt从暂存区提交到仓库,提交时的信息为“message”。
git push -u origin(重命名) main(分支名):将本地的origin项目的main分支提交到Github的main分支。
git commit -a -m "message" file1.txt :一次性add并提交file1文件
git commit -am "message" file1.txt :一次性add并提交file1文件
6.git reset回退版本(待处理)
7.SSH配置和克隆仓库
7.1在github创建一个repo仓库
7.2在本地电脑上创建仓库
(1)新建一个文件夹new file
(2)在new file下用git bash打开,输入“git init”,这个new file变成一个仓库。
(3)从本地克隆github的仓库
输入:git clone git@github.com:项目地址
提示没有正确的访问权限,需要配置SSH密钥
8.关联本地仓库和远程仓库
git remote add orgin 远程仓库地址,即可将本地仓库和远程仓库关联起来,输入git remote -v可查看具体信息。
8.1远程仓库修改文件后,pull到本地仓库
注意:
(1)本地仓库是远程仓库的子集时,使用pull才能拉过来
否则就会合并失败
总结:
9.分支简介和基本操作
9.1创建一个新的文件夹branchd-demo,进入文件夹下,初始化仓库。
9.2分支的命名与提交时的命名
9.3创建main1.txt,main2.txt,main3.txt三个文件,并提交到master分支。
echo main1 > main1.txt
git add .
git commit -m "main1:"
echo main2 > main2.txt
git add .
git commit -m "main2:"
echo main3 > main3.txt
git add .
git commit -m "main3:"
9.4使用git branch查看该仓库分支情况:只有默认master分支
9.5创建一个新的分支:git branch dev
使用git branch 查看当前分支状态。
发现创建了dev分支,但是目前不在dev分支,在master分支。
9.6从master分支切换到dev分支:git checkout dev
9.7在dev分支下新建一个文件dev1.txt
发现branch-demo文件夹下面也有这个文件:
添加并提交:
9.8从dev分支切换回master分支:git switch master
此时master分支的内容是:main1,main2,main3
dev分支的内容是:dev1
9.9将dev分支合并到main分支:在main分支下执行git merge dev命令
合并之后,dev分支仍然存在,使用git branch -d dev删除分支dev
10.解决合并冲突
如何两个分支对于同一个项目,改动同一行代码,合并就会产生冲突:
10.1新建一个分支feat
git branch feat
10.2在feat分支下对main1.txt文件进行修改
10.3在master分支下查看main1.txt的内容,在feat分支下查看main1.txt的内容
10.4在main分支中修改main1.txt的文件内容
保存提交:git commit -am main1.txt
10.5解决main1.txt在俩分支的修改冲突
尝试将feat分支合并到master分支:
合并失败。
git diff查看master分支和feat分支为什么会有冲突:
手工编辑main1.txt文件,留下想要的内容。
添加并提交:
解决f由于main1.txt文件冲突导致不能将feat分支合并到master分支的问题!!!