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

假设我分别输入

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值