git的使用

简介:

"""
什么是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

 

posted @ 2023-06-21 21:13  秃头不爱学  阅读(42)  评论(0)    收藏  举报