一、Git下载和安装
1、Git的下载
2、Git的安装
直接点击下一步即可
3、测试
-
打开命令行工具: win+R --- 输入cmd
-
输入
git --version
二、Git 管理指令
1、创建本地版本库
-
在工作空间目录——右键——Git Bash Here——打开Git终端工具
-
在Git终端执行
git init
指令,就会为当前工作空间创建本地版本库(就是工作空间中生成的.git
目录)
2、将工作空间中的文件添加到暂存区
# 将工作空间中指定的文件添加到暂存区
git add fileName
# 将工作空间中所有的文件添加到暂存区
git add .
# 从暂存区移除某个指定的文件
git rm -f fileName
# 查看暂存区中的文件状态
git status
3、将暂存区文件提交到本地版本库,生成版本
# -m 用于添加版本更新日志
$ git commit -m '生成初始版本'
4、查看本地版本库的历史版本
git log
git log --oneline
5、同步版本库中指定的版本到工作空间
git checkout
三、Git团队协同开发
3.1 远程版本库
存储在远程服务器上的版本库
3.1.1 搭建远程版本库的途径
-
使用GitLab搭建私服
-
使用第三方提供商提供的公共版本库
-
GitHub https://github.com
-
Gitee(码云) https://gitee.com
-
3.1.2 基于码云搭建远程仓库
-
在码云中注册账号
-
使用注册的账号登录到码云
-
创建远程版本库:(远程仓库名称与项目名保持一致)
-
添加远程版本库开发者
3.2 将本地版本库同步到远程仓库
-
关联远程仓库到本地
git remote add origin https://gitee.com/xergou/mtlms.git
-
查看远程仓库的关联信息
$ git remote -v origin https://gitee.com/xergou/mtlms.git (fetch) origin https://gitee.com/xergou/mtlms.git (push)
-
提交本地版本库到远程仓库(版本存储在仓库中的某个分支,master就是仓库默认的主分支)
# 将本地版本库中的项目版本提交到 origin 对应的远程仓库的 master分支 git push origin master
如果我们是首次连接远程仓库,需要输入具有远程仓库访问权限的帐号和密码:
3.3 从远程仓库拉取版本到本地版本库
-
开发者B创建一个用于存储项目的目录(工作空间)
-
在创建的目录中初始化一个本地版本库
-
在目录中打开Git的终端
-
执行
git init
-
-
从远程仓库pull项目到本地仓库
git pull https://gitee.com/xergou/qfmall.git master
如果我们是首次连接远程仓库,需要输入具有远程仓库访问权限的帐号和密码。
3.4 团队协同开发的冲突问题
版本冲突问题:当开发者A在对文件进行修改之后需要
push
的远程仓库,但是在开发者A进行push
操作之后,远程版本库的这个文件被其他开发者修改并成功push
,则就导致在Apush当前文件时与远程仓库中的文件产生冲突,开发者A的push
操作就被拒绝。
【开发者A】如何解决冲突:
-
开发者A先执行pull操作,从远程仓库将开发者B修改后的文件下载到开发者A
-
开发者A从远程仓库pull版本会与本地版本进行合并
-
开发者A再重新提交到本地版本库,并push到远程仓库
四、Git分支管理
4.1 什么是分支
分支就是版本库中用于记录版本的位置的支线,使用分支可以对项目的版本起到保护作用
4.2 分支操作
-
创建新分支
-
git branch new_branch_name
-
查看分支
git branch
-
切换分支
git checkout branch_name
-
合并分支
# 切换到目标分支,例如我们如果要将test分支合并到master分支,需要先切换到master git merge branch_name
-
查看分支版本
git log --oneline graph
4.3 分支合并操作
分支合并有2种方式:
-
快速合并:如果两个分支的版本是包含关系,则进行合并操作时会触发快速合并,快速合并不会创建新的版本,而是直接指向被合并的分支版本
-
三方合并:如果两个分支的版本不是包含关系,则进行合并操作时会触发三方合并,三方合并会创建新的版本
4.4 提交本地分支到远程仓库
-
切换到本地对应的分支
-
push分支到远程仓库的指定分支(如果提交的远程仓库中分支不存在,则会新建这个分支)
git push origin dev
-
远程仓库的分支管理