JS高级:Git
创始人
2024-03-14 08:29:57
0

目录

集中式版本控制  ​编辑

 分布式版本控制

 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指向谁,现在就处于哪个分支

假设我分别输入

git branch test
git checkout test
git add .
git commit -m "xxx"

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

 111指的是之前提交的内容

如果再输入

git checkout master
git add .
git commit -m "new"

 

查看和删除分支

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

git push origin xxxxxx

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

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

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...