简介:
""" 什么是git:版本控制器 - 控制的对象是开发的项目代码 代码开发时间轴:需求1 => 版本库1 ==> 需求2 => 版本库2 => 版本库3(版本库1) => 版本库4(版本库2) """
git工作流程:
-工作区:存放代码的文件夹,只要工作区文件发生变(修改,新增,删除)
-暂存区:工作的变更,提交到暂存区 git add . 把工作区变更提交到暂存区
-版本库:暂存区内容,放到版本库,被版本管理--->git commit -m ''
安装git:
https://git-scm.com/download/win
安装完毕在cmd中输入:git version确认,有反应代表安装成功
git常用命令:
#1.初始化仓库,需要在文件夹下执行:
git init #在当前文件夹下就会创建出 .git的文件夹,此文件夹就会被git管理
git init xxx #在当前路径下创建出xxx文件夹,并用git管理xxx文件夹
#2.配置用户:
全局配置:以后所有的版本提交时,都使用这个用户和邮箱
git config --global user.name '用户名'
git config --global user.email '用户邮箱'
局部配置:仅在当前仓库生效
git config user.name '用户名'
git config user.email '用户邮箱'
#3.查看仓库状态:
git status #红,绿
如果是红色:表明是在工作区发生了变化,没有提交到暂存区
如果是绿色:表明暂存区数据没有提交到版本库
如果没有东西表示当前目录下所有文件都被git管理了
#4.把工作区变更,提交到暂存区
git add . #当前目录下所有增删改都提交
git add 1.txt #只提交当前目录下1.txt这个文件的增删改
#5.把暂存区内容提交到版本库(提交到版本库后的文件后期都可以找回来)
git commit -m '注释' #如果不设置用户无法提交
#6.查看版本信息(提交过哪些版本,注释是什么)
git log
git relog #简略版
7.把工作区变话的文件还原(只要动了文件,git status会变红,将变动的文件还原)
git checkout . #当前路径下所有文件还原
8.把暂存区内容拉回到工作区(由绿色变回红色)
git reset HEAD
9.从版本库拉回到暂存区(暂存区内容回退,变绿,)
git reset --soft 版本号 #版本号需要写上一个版本号
10.把版本库拉回到工作区(版本库回退变为红色)
git reset --mix 版本号
11.把版本库直接完整退回工作区
git reset --hard 版本号
git忽略文件
#写项目的时候,有些文件或文件夹不希望被git管理,需要忽略掉它
忽略文件使用:
#需要写一个忽略文件 .gitignore 必须为此文件,没有后缀名
在忽略文件的文件夹写法:
.idea #忽略idea文件夹及其下面所有的文件
lqz.txt #忽略仓库中所有lqz.txt的文件
/lqz.txt #忽略当前路径下的lqz.txt
a/lqz.txt #忽略当前路径下a文件夹下的lqz.txt
*x* #名字中有一个x的都会被过滤
git多分支开发:
#1.查看分支:
git branch #本地
git branch -a #本地和远程
#2.创建分支:
git branch dev #创建dev分支
#3.切换分支:
git checkout 分支名字
#4.删除分支:
git branch -d 分支名 #不能在本分支删除该分支
#5.合并分支
git merge dev #把dev分支合并到master上,合并完后两个分支就一样了
gitee远程仓库:
新建仓库:
本地仓库推到远端:
#git remote 查看有哪些远程仓库
#git remote remove origin 删除本地跟远程仓库的链接
#git remote add 远程仓库名字 远程仓库地址
git remote add origin https://gitee.com/liuqingzheng/lqz.git
#git push origin master 把本地仓库中所有的内容提交到远程仓库
输入:git push origin master后,会有弹出框,要求输入gitee的用户名和密码
ssh方式链接远程仓库
具体操作:
1.先删除原来使用的https链接的remote:git remote remove origin
2.增加一个跟远程仓库的链接 origin--------->是ssh协议的
git remote add origin ssh协议
3.本地机器生成公钥私钥(使用命令生成)
生成步骤详情介绍:-https://help.gitee.com/base/account/SSH%E5%85%AC%E9%92%A5%E8%AE%BE%E7%BD%AE
4.打开cmd执行:ssh-keygen -t ed25519 -C "自己设置的字符串"
5.在自己c盘用户路径,生成了.ssh文件夹,里面有公钥和私钥
6.把公钥配置在gitee上:设置---->SSH公钥
协同开发:
""" 1)作为开发者,第一次同步项目(前台已经是项目开发者了) >: git clone 项目地址 2)保证自己本地有dev分支,且与远程仓库版本同步(没有就自己新建) 3)本地开发的代码,必须add、commit到本地版本库后,才和远程仓库进行交互 4)交互顺序:必须 先拉(pull)后提(push) 5)必须切换到要交互的分支,在与远程同名的分支进行交互,如本地dev与远程dev交互 >: git checkout dev >: git add . >: git commit -m '本次提交的信息提示' >: git pull origin dev >: git push origin dev """
冲突解决:
""" 1)在远程仓库和本地仓库版本不一致时,拉取远程仓库版本到本地时,两个版本进入融合,可能会出现版本冲突 2)定位冲突文件冲突代码,线下沟通冲突代码,整合代码解决冲突 3)将解决冲突后的代码重新提交到本地版本库 4)再拉去远程仓库,直到没有冲突,提交本地版本库到远程 """ """ <<<<<<< HEAD # 冲突的开始 # 自己的代码 ======= # 分割线 # 别人的代码 >>>>>>> b63c408abd05b87fc492d40523240561999dba50 # 冲突的结束(版本) """ """ 1)删除冲突相关标识:冲突的开始、分割线、冲突的结束(版本) 2)线下沟通,根据实际需求完成代码整合 3)测试整合后的代码 """ """ 出现冲突的前提: 1)不同开发者同时操作了同一文件 2)并且在相同行写了代码 强调:有业务交际时,版本合并不一定会出现冲突相关的标识,但是可能会带着代码运行崩溃,所有理论上每一次版本合并,都要测试合并后的所有功能(及其之少的情况) """
线上分支合并:
本地分支合并:git merge dev
有主分支------>开发分支开发完了----->合并到主分支上
远端创建创建dev分支,拉取到本地:
远端:
本地:
git pull origin dev #拉取数据
git checkout dev #切换分支
本地创建dev分支推到远端:
1.创建分支:git branch dev
2.切换到dev分支:git checkout dev
3.将dev分支提交到远端:git push origin dev
git pull和git fetch:
-git pull 从远程仓库拉取代码:从远程获取最新版本并merge到本地 -git fetch 从远程仓库拉取代码:会将数据拉取到本地仓库 - 它并不会自动合并或修改当前的工作 -git pull =git fetch +merge
标签:git,仓库,dev,版本,使用,远程,分支 From: https://www.cnblogs.com/Hao12345/p/17497176.html