1.git简介
1.1git 是什么
git就是一个版本控制器,在开发中,Git已成为现在主流的一种代码托管技术(版本管理工具),基本上大多数的公司都在使用Git进行协同开发。
1.2 git的作用
1.多人协同开发
2.版本管理控制,可以进行版本回溯
3.可以进行分支管理
1.3 git如何进行管理
首先我们要知道git有这几个状态:工作区,暂存区,本地仓库,远程仓库。
工作区,暂存区,本地仓库都是在本地的,只有远程仓库是在服务器上的。
然后,我们要知道一些远程托管平台:gitee、github,我们可以在托管平台上创建远程仓库然后与本地的仓库建立连接。托管平台与远程仓库的关系就有些类似淘宝网与淘宝卖家的关系。
接下来我们创建一个git的远程仓库来示范一下
1.提前准备
自己下载并安装好git.exe
下载官网:Git - Downloads
配置全局用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
注册一个gitee的账号
2.创建自己的公钥
首先再自己本地创建一个文件夹,然后进入文件夹,然后右键打开git Bash 输入
# 生成sshkey
ssh-keygen -t rsa
#执行完毕上面命令之后,按几次回车 #查看公钥的内容,复制到git的sshkey位置
cat ~/.ssh/id_rsa.pub
然后登陆gitee,在设置中找到SSH公钥
把~/.ssh/id_rsa.pub中的内容全都复制粘贴到这生成公钥
ps:公钥和私钥的简单介绍
1.4 git的分支
版本:只要有修改就会变为下一个版本 》》》HEAD会指向当前最稳定的版本
回溯后本地工作区依然还存在以前的文档,但是仓库中已经回到上一版本了
分支管理
子分支用来开发新的功能
2.git的使用
2.1 git创建仓库
在D盘中的某一目录下创建一个文件夹,然后右键打开git Bash Here 输入
git init
创建完仓库我们来了解一下git仓库都有哪些区域
2.2 git的提交
首先在我们刚才在本地创建的文件夹下创建一个文本文档,然后打开git Bash here
工作区>>>暂存区
#将所有的文件提交到缓存区
git add .
#将指定的文件提交到缓存区
git add file
暂存区>>>本地仓库
git commit -m "用于描述本次提交"
本地仓库>>>远程仓库
首先在gitee上创建一个仓库
复制ssh上的内容
在你想存放项目的文件夹内右键打开git bash here
git clone xxxx地址 (不加分支默认master) #默认拉取master分支代码
克隆完成
在clone下的项目中创建一个新的文件
然后执行以下步骤
git status #查看当前仓库状态
git add . #添加到暂存区
git commit -m 'xxxx' #添加到本地仓库
git pull # 同步远程仓库到本地,检查远程仓库是否比本地版本更高一些
git push #推送到远程仓库
远程仓库
2.3 git分支的创建与合并
创建分支
git checkout -b xxx分支名字 #创建并切分支
查看分支
git branch #查看本地分支
git branch -a #查看所有分支
合并分支到当前分支
git checkout master #切换到master分支
git merge xxx分支名字 #合并分支
本地合并后,上传至远程仓库
本地分支到远程分支
git checkout master
git pull origin xxx分支名字 #远程拉取XX分支
git merge origin /xxx分支名字
git push
本地分支到远程
删除分支
git branch -d # 删除已合并的分支,有未合并代码不允许删除
git branch -D # 强制删除有未合并代码的分支
git push origin --delete dev_new #删除远程分支
3.git的问题解决
3.1 版本的回溯
日志查看
git log #日志
git log --pretty=oneline #美化输出,行格式显示
git log --pretty=oneline --abbrev-commit #简化版本号 行格式显示
历史命令日志
#版本相关,如果再版本回滚时误操作了,可以通过这 #个地方来找历史的版本号和命令进行恢复
git reflog
撤销和回退
git checkout xxx #撤销某个文件修改,这里的数据还没有提交到暂存区
git checkout . #撤销当前文件夹内所有修改
git reset --hard HEAD #放弃暂存区中所有的修改和新增
版本回退(谨慎使用)
git reset --hard HEAD #放弃当前所有修改,回退到当前版本
git reset --hard HEAD^ #回退到上一个版本
3.2 git合并时出现问题的解决
当我们在master分支对test001进行修改后并进行上传,然后再fenzhi02的分支下对test001进行修改并进行上传,然后在合并,就会出现以下问题。
错误产生原因:不同分支下对相同的文件进行了更改
错误解决办法:线下沟通,选择只选择一个分支进行更改
-
-
- 本地merge出现错误就在master下进行修改然后选择一种修改,然后进行add commit merge
- 远程的话就先pull以下,在merge;
-