侧边栏壁纸
博主头像
SeaDream乄造梦

Dream,Don't stop a day of hard and don't give up a little hope。 ——不停止一日努力&&不放弃一点希望。

  • 累计撰写 40 篇文章
  • 累计创建 20 个标签
  • 累计收到 13 条评论

目 录CONTENT

文章目录

Git 中阶学习 基础知识深入理解

SeaDream乄造梦
2022-04-24 / 0 评论 / 0 点赞 / 377 阅读 / 4,304 字
温馨提示:
亲爱的,如果觉得博主很有趣就留下你的足迹,并收藏下链接在走叭

知识回顾

image-20220422140703659

image-20220422141142253

工作区、暂存区、版本库

为了更好的学习Git,我们需要了解Git相关的一些概念,这些概念在后面的学习中会经常提到。

版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等

工作区:==包含.git文件夹的目录==就是工作区,也称为工作目录,主要用于存放开发的代码

暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

image-20210926094831386

简化解释:工作区:hellogit那个目录,git add命令—放到暂存区(在.git目录的index下面),git commit提交到版本库相当于这个文件由git管理起来了。版本库就隐藏的.git文件夹

4.4 Git工作区中文件的状态

Git工作区中的文件存在两种状态:

  • untracked 未跟踪(未被纳入版本控制——未被git管理)==》==git add前==

  • tracked 已跟踪(被纳入版本控制——被git管理) ==》==git add 后--已暂存(staged)==

    1)Unmodified 未修改状态

    2)Modified 已修改状态

    3)Staged 已暂存状态

注意:文件的状态会随着我们执行Git的命令发生变化

git项目连接多个仓库

比如我同时连接的是gitee和gitgub,coding,下面用两个仓库开始展示:

第一种方法

==初始化本地仓库,两个仓库都从远程pull拉取==

1.右键打开git
image-20220420184139354
2.初始化本地仓库
git init
image-20220420184249807
3.连接远程仓库,分别为仓库起别名

我们先来复习下连接远程仓库命令的含义:

git remote  查看远程仓库
git remote -v   查看远程仓库具体信息
git remote add [仓库别名] 远程仓库地址
git clone 远程仓库克隆地址   从远程仓库拉取
git pull 远程仓库拉取合并   
git push 推送到远程仓库
  1. 连接gitee仓库,起别名“gitee”
git remote add gitee git@gitee.com:huizai-175/testmall.git

image-20220420192617997

  1. 连接github仓库,起别名“github”
git remote add github git@github.com:1314huihui/testmall.git

image-20220420192810197

  1. 查看远程仓库连接情况
git remote
git remote -v

查看连接的仓库

image-20220420193009905

查看连接的仓库具体信息

image-20220420193050250

至此,连接两个仓库前期准备工作完成

4.操作远程仓库
4.1 前期知识准备

我们来测试测试操作远程仓库的几个命令,首先我们来说下git操作原理。

git init创建初始化本地仓库,还有以下命令都是对本地仓库的操作,例如

image-20220420193453265

- 将文件加入暂存区,本质就是执行 git add 命令
- 将暂存区的文件提交到版本库,本质就是执行 git commit 命令
- 分支操作  
git branch                              查看分支
git branch [name]                       创建分支
git checkout [name]                     切换分支
git push [shortName] [name]   推送至远程仓库分支  shortName远程仓库的别名,name分支的名称
git merge [name]                        合并分支

==对远程仓库的操作是在本地操作 成功加入版本库之后的==

//拉取合并代码
git pull [仓库名] [分支名]
//推送代码
git  push  [仓库名] [分支名] 
4.2准备两个仓库,我在这里的是gitee仓库和github仓库

gitee默认分支名为master ,github 我设置的默认分支名也为master

仓库内容如下:

  1. gitee 默认分支master

image-20220421133010340

  1. github 默认分支master

    image-20220421133111376

4.3拉取合并仓库内容
  1. 拉取合并gitee里的文件(注意拉取命令中的gitee是我们连接时起的别名)
 git pull gitee master
image-20220420203614973
  1. 拉取合并github里的文件(注意拉取命令中的github是我们连接时起的别名)

    image-20220421134904162

注意拉取的时候可能会出现这个问题

image-20220421134926994

​ 连接超时原因可能:1.你的网络状态不好; 2.github连接时有时候会被墙

​ 不能读取远程仓库可能原因:

​ 1.密钥过期,或内容改变,从新配置密钥;

​ 2.删除远程仓库,从新连接

git remote rm [仓库别名]
git remote add [仓库别名]  [仓库地址] 

还有可能会出现代码内容冲突问题,解决代码冲突问题猿猿在另一篇gitee基础博客中提供了三种方法git系统学习总结

4.4推送本地仓库到远程仓库

推送本质都一样,下面一一演示一遍

  1. 推送本地仓库至gitee仓库

    1.先操作本地仓库====>分别执行下列命令

    git init .      			//将所有文件加入缓存区
    git commit -m "msg"         //提交本地改变到版本库
    

    2.推送至远程仓库——gitee仓库

    git push gitee master
    

    image-20220421140357843

    ​ 查看gitee仓库的变化

    image-20220421140737226
  2. 推送本地仓库至github仓库

    ​ 1.为了看的清楚内容改变,我们在本地进行一些变化,创建一个github.txt文件

image-20220421140838159

​ 2.看下我们github文件

image-20220421140937032

​ 3.推送代码到github仓库。与==1.推送本地仓库至gitee仓库==操作相同,这里就不解释了

git init .
git commit -m "github仓库代码上传——github.txt"
git push github master
image-20220421141236951

​ 4.刷新检查github远程仓库

image-20220421141335195

第二种方法

需求:

  1. 关联两个仓库,从一个仓库中拉取代码,但是上传时不仅需要上传到拉取代码的仓库,也需要在另一个仓库备份一份
  2. 比如我们开发时使用的时coding开发,而我们想要把自己做过的项目和git提交记录都在自己gitee上展示一遍,作为我们工作经验的证明
  • 提前准备好gitee仓库,仓库名和coding里的名字相同
  • 这里我们用github模拟coding代码拉取,仓库名都是testmall

image-20220421142004722

image-20220421141939938

步骤

1.克隆远程仓库代码

创建个存放代码的空文件夹,右键打开git

image-20220421142122724
git clone [仓库地址]

此时,整个目录被全部拉取到了本地

image-20220421142228637
2.关闭此git窗口,进入拉取成功的根文件目录

注意,此目录下有个.git文件,所以我们就不用==git init==初始化我们的本地仓库了。

image-20220422124007222

3.在这里面从新右键打开Git
image-20220422124158364
3.查看当前仓库详细信息

命令意思前面有介绍

git remote -v

image-20220422124534947

5.连接第二个仓库

或者第三个第四个,操作步骤在第一种方法中有介绍

这里我连接的是gitee仓库

image-20220422124647145
 git remote add gitee git@gitee.com:huizai-175/testmall.git

image-20220422124744175

注意:操作完成什么也不显示代表成功

6.查看当前连接的所有仓库
git remote

image-20220422124838250

7.测试将clone下来的代码上传至gitee中
  1. 新建本次仓库自己的分支(注意:新建的自己的分支是默认继承主分支内容的)
  2. 切换本次仓库自己的分支
  3. 推送本地仓库自己的分支到远程仓库
image-20220422134639575

还是一如既往的两步操作

  1. 上传至本地版本库
  2. push 推送至远程仓库

image-20220422135239747

git add .
git commit -m "把从github中clone的代码分支提交到gieee中"
git push gitee develop
8.对比推送前后的gitee仓库
image-20220422135105260 image-20220422135137871

查看master分支和develop内容

image-20220422135424304 image-20220422135526548 image-20220422135443971

分支操作也是在本地仓库下操作的,操作完推送此分支到远程仓库就欧克啦

提示信息

  1. 本地没有任何改动

image-20220422132737802

  1. 由于我们现在代码是从github直接clone下来的,我们并没有对新关联的gitee仓库进行pull操作,提示先pull在push

    image-20220422132702601

​ 可能会出现这种情况,意思是让你对本次操作说明一下。

​ 我们可以不做任何操作,按下面两个步骤退出此编辑器 键盘先按 在按 wq在按回车

image-20220422133122133

解释下.git文件

人家已经很详细了,自己就不耗时写了 链接

.git文件夹详解_mayfla的博客-CSDN博客_.git

骚操作

标注:以下为猿猿各种收集到的,可能有抄袭嫌疑,如有请联系猿猿删除

==适合对git理解不够深入的小伙伴,强制解决问题==

git使用方法

参考链接 GitHub详细教程

1.git的下载链接

Git2.6.2的网址:https://git-scm.com/downloads

2.git在目录文件夹中打开

3.执行代码

一、输入在当前项目的目录中生成本地的git管理(会发现在当前目录下多了一个.git文件夹)

git init

二、输入git add .(注意有个点)

这个是将项目上所有的文件添加到仓库中的意思,如果想添加某个特定的文件,只需把 . 换成这个特定的文件名即可

git add .

三、输入git commit -m "first commit",表示你对这次提交的注释,双引号里面的内容可以根据个人的需要改。

git commit -m "first commit"

image-20210523165522726

四、输入git remote add origin https://自己的仓库url地址(上面有说到) 将本地的仓库关联到github上,

如我的是git remote add origin https://1314huihui.github.io/supermall/

https://gitee.com/huizai-175/spring-boot

git remote add origin https://自己的仓库url地址

与本地建立关联

git pull origin master --allow-unrelated-histories    //--allow-unrelated-histories    解决冲突的方法方案之一

五、输入git push -u origin master,这是把代码上传到github仓库的意思

git push -u origin master    //-u  表示设置此次提交的仓库未默认仓库,下次直接`git push`  会体提交到默认仓库

这里就上传成功了!

(1条消息) git stash 和 git add 的区别及使用技巧_凯扣叮~的博客-CSDN博客_git stash

(2条消息) git如何将一个分支上的代码提交到另一个分支_Doris@的博客-CSDN博客_git将一个分支的部分代码迁移到另一个分支

冲突解决

image-20220415125753904

git status 有红色的文件
git add .
git diff
git status  文件全变绿了
git commit -m ""
git status   解决!没有文件了
git push

代码从一个分支上传另一个分支

//A分支提交到B分支
git add .
git commit -m "msg"
git log      //记住这个id
git checkout B
git pull
git cherry-pick id
git push origin B

或
git push origin A:B

本博文结束,耗时一天的,给猿猿留下个点赞收藏在走呗

0

评论区