• JS高级:Git


    目录

    集中式版本控制  ​编辑

     分布式版本控制

     Git

    安装

    bash-cmd-gui

     基本使用

    文件状态

     git忽略文件

     版本回退

    远程仓库

     gitee

    凭证

    SSH秘钥

    管理远程仓库

     开源协议

    github

    git标签

    git 分支

    master 分支

    分支操作


    集中式版本控制  

     分布式版本控制

     Git

    安装

    Git

    其实Git就是一个版本管理工具,能保存开发过程中的各种版本,其采用分布式版本控制,将版本上传至远程服务器的同时,还会建立一个本地服务器放置镜像

    bash-cmd-gui

     基本使用

    在VS code中打开git mash

    初始化git仓库,创建一个本地的仓库

    git init

    将当前文件下所有文件加入git

    git add .
    

    提交

    git commit -m "名字"

    查看提交信息

    git log

     

    文件状态

    git add .可以使得所有文件都进入暂缓staged状态

    git commit -m "name" 可以使得所有文件都处于已跟踪状态 unmodified

    未跟踪状态untracked。比如说新建了一个文件

     这个时候可以通过  git add .  使其变成暂缓staged状态

    如果改变了某个文件,会变成modified状态

    可以通过 git status来查看文件状态

    git status
    

    当我新添加了一个文件

     这是untracked状态

    当我执行 git add .

     即文件处于暂缓区   staged

     git忽略文件

    git上传时,有一些文件是不希望上传的,就可以通过 .gitignore 文件设置哪些文件被忽略

     版本回退

    可以退回到之前的某个版本

    HEAD指向的是最后一次版本

    使用git reset --hard XXXX 实现版本回退 

    远程仓库

     

     gitee

    登录 - Gitee.com

    如果要从远程仓库下载到本地,需要通过

    git clone xxxx

    这里xxx是指仓库的地址

    xxx可以是https  ssh  svn,这些在远程仓库里面都提供了

     但是如果是私人仓库,那只拿到这些是不够的,还会需要凭证

    凭证

     也就是说,选项5的这个插件可以存储用户名和密码并自动使用,只需要手动输入一次

    这个插件在安装git的时候就已经下载了,所以无须下载

    可以通过

    git config credential.helper

    查看该插件的状态,如果结果是manager-core,则是启动了这个插件

    输入用户名和密码后会自动下载

    在改变下载的代码后,在通过git add . 和git commit -m "name"之后,使用

    git push

    将改变后的项目上传到远程仓库

    SSH秘钥

     也就是在本地生成一对ssh秘钥,分为公钥和私钥

    生成方式是

    ssh-keygen -t ed25519 -C"email"

    其会生成一个秘钥文件,一般是放在c盘的user文件夹下的.ssh文件夹下,找到这个文件 

    然后打开.pub文件,拿到里面的内容,复制 

     然后将公钥配置到远程服务器,这里直接进gitee的设置里面设置,即粘贴进这个地方

    配置成功

    管理远程仓库

     给本地仓库与远程仓库建立连接,生成的远程仓库名字默认为 origin

    git remote add origin https://gitee.com/XXXX/gitdemo.git

     但是建立连接是不够的,因为仓库里是有很多分支的,在不指定分支的情况下,在执行git pull或者git push时就不知道要从那个分支获取

    所有要设置其上游分支

     git branch --set-upstream-to=origin/master

    git pull的作用是将远程仓库的内容下载到本地,并且和本地的仓库合并,其实是执行了git fetchgit merge两个操作

    但是设置完上游分支之后,我们运行git pull 还是会报错,这里很显然是git merge报错

     其实就是远程分支本地分支是没有共同的祖先的(也就是说这两个分支在提交的历史上没有交点),所有在合并时会不被允许

    可以使用

    git merge --allow-unrelated-histories

    允许不相关的分支进行合并

    那么就可以正常使用git pullgit push

    上述问题都是在使用git init创建本地仓库,然后与远程仓库进行连接时产生的问题,如果是直接采用git clone得到的本地仓库,那直接使用git pullgit push没有任何问题,因为使用git clone时已经建立了连接

     

     开源协议

    一般都是采用MIT许可证

    github

    一般操作和gitee一样,这里有一个区别是github创建的远程仓库的默认分支是main

    那么在设置上游分支时,应该

     git branch --set-upstream-to=origin/main

    这个地方我们本地的分支叫master,而远程的分支叫main,当我直接push或者pull时,远程会找跟自己名字一样的本地分支,也就是main,而不能找到master

    方法1、把我们本地的分支名也改为main

     git branch -m master main

    方法2、 给push和pull操作设置config 

    git config push.default upstream

    方法3、创建新的分支main

    git checkout --track origin/main

    git标签

    git 分支

    master 分支

    其实master分支就是自动创建时的默认分支名字,本质上是一个指针,指向最后提交的内容

    每次提交,这个分支就会往后移

    分支操作

    可以采用

    git branch xxxx

    创建一个xxxx分支,然后使用

    git checkout xxxx

    转换到这个分支处,本质上是将HEAD指针指向了这个xxxx指针

    也就是说,HEAD指向谁,现在就处于哪个分支

    假设我分别输入

    1. git branch test
    2. git checkout test
    3. git add .
    4. git commit -m "xxx"

    即我创建了一个test分支,并提交了xxx,则此时的指针指向应该是:

     111指的是之前提交的内容

    如果再输入

    1. git checkout master
    2. git add .
    3. git commit -m "new"

     

    查看和删除分支

     在本地创建新的分支后可以直接推到远程,让远程也创造这个分支

    git push origin xxxxxx

    xxxx就是新的分支,但是在之后使用push还是得设置上游分支

     git branch --set-upstream-to=origin/xxxxx

  • 相关阅读:
    小程序如何设置自动预约快递
    如何创建一个带诊断工具的.NET镜像
    MATLAB环境下基于变分贝叶斯的组织学病理图像颜色盲反卷积方法
    OpenCV(十六):高斯图像金字塔
    私仓库Nexus
    基于车联网的车辆编队标准现状及展望
    第二章 软件测试开发工程师
    21.建造者模式
    Bean 作⽤域和⽣命周期
    jeecgboot — docker 搭建 jeecgboot 项目 +本地VUE2 前端
  • 原文地址:https://blog.csdn.net/qq_54517101/article/details/128127613