【git】上手git

本地仓

本地仓上的其他分支

默认是master分支
在这里插入图片描述

  • git branch
    查看分支
    本地仓当前只有一个分支,即master分支
    在这里插入图片描述
  • git branch dev
    创建分支
    新建分支,名为dev
    在这里插入图片描述
  • git switch dev
    切换分支
    从master分支切换至dev分支
    在这里插入图片描述
  • git switch -c dev
    创建dev分支,并切换至dev分支
    在这里插入图片描述
  • git branch -d dev
    删除分支
    删除dev分支,不过先得切换到其他分支,比如master分支,再执行删除操作
    在这里插入图片描述

本地仓远程仓相爱相杀

本地仓与远程仓
  • git remote - v
    查看本地仓所关联的远程仓。
    本地仓所关联的远程仓名字叫origin,远程仓地址为https://github.com/账号名/helloworld.git
    在这里插入图片描述
  • git remote add 名字 远程仓地址
    将本地仓与远程仓关联
    将本地仓与远程仓https://github.com/账号名/helloworld.git,并将远程仓命名为release
    在这里插入图片描述
  • git remote rm 名字
    本地仓取关远程仓
    取消本地仓与名为release的远程仓之间的关联
    在这里插入图片描述
本地仓分支与远程仓分支
  • git branch --set-upstream 远程仓/远程仓分支 本地仓分支
    设置 本地仓分支 关联 远程仓分支
  • git branch -vv
    查看 本地仓分支 与 远程仓分支 之间的关联关系

~本地仓master分支 关联 远程仓master分支,本地仓dev分支 关联 远程仓dev分支~
在这里插入图片描述

代码推送

git add 文件名 ,增加 文件
git add .,增加 当前目录下的所有文件
git rm 文件名 , 删除 文件
~假如删除 index.js,先本地删除index.js,再git删除~

rm index.js
git rm index.js
本地仓master分支推至远程仓master分支

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本地仓dev分支推至远程仓dev分支

在这里插入图片描述

在远程仓上创建dev分支

在这里插入图片描述

在本地仓上创建dev分支

在这里插入图片描述
报错了?为什么?因为本地没有dev分支。
本次仓上创建dev分支,并切换至到dev分支。随后,git push origin dev,便将README.md本地仓dev分支内容推入远程库的dev分支。
在这里插入图片描述
注意哈,这时远程仓master分支里没有README.md
在这里插入图片描述
那我们就来看看怎么把 本地仓dev分支 推入 远程仓master分支

本地仓dev分支推入远程仓master分支

有两种方式。

  • 首先本地仓dev分支并入本地仓master分支,然后本地master分支推入远程master分支

在这里插入图片描述
在这里插入图片描述

  • 首先本地仓dev分支推入远程仓dev分支,然后远程仓dev分支并入远程仓master分支

在这里插入图片描述
本地仓dev分支 推入 远程仓dev分支 的操作上面已经介绍过了。
远程仓dev分支 并入 远程仓master分支 的操作在github网站上进行,具体步骤如下:
在这里插入图片描述

代码拉取

  • git pull origin master
    从远程仓拉取代码
    从远程仓的master分支拉取代码到本地仓的master分支
    在这里插入图片描述
  • git clone https://github.com/账号名/helloworld.git
    clone代码到本地
    将远程仓代码克隆到空目录
    在这里插入图片描述
    在这里插入图片描述
可能的坎儿
问题1
  • 问题描述
    本地仓与远程仓代码不一致,git pull origin master无法拉取代码
  • 解决方法
git fetch --all
git reset --hard origin/master
git pull origin master

git fetch -all,将远程仓代码下载到本地
git reset --hard origin/master,将HEAD指向origin/master远程仓的master分支
git pull origin master,从origin master拉取代码

问题2
  • 问题描述
    git clone https://github.com/账号名/ant-design-vue.git失败,错误提示:
    error: RPC failed; curl 18 transfer closed with outstanding read data remaining
    fatal: the remote end hung up unexpectedly
    fatal: early EOF
    fatal: index-pack failed
  • 解决方法
    https的方式容易遇到此问题,而ssh的方式不会,所以改用git clone git@github.com:账号名/ant-design-vue.git
    之后又有提示:The authenticity of host ‘github.com (13.229.188.59)’ can’t be established.
    RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added ‘github.com,13.229.188.59’ (RSA) to the list of known hosts.

    这是因为.ssh目录里没有known_hosts这个文件。
    直接输入“yes”并回车,就会创建known_hosts这个文件,且本机公钥会被添加到该文件里。

其他

  • git log | git log --pretty=oneline | git reflog
    查看命令行历史
    注意这一长串
    在这里插入图片描述
  • git status
    查询状态
    例1
    add后查询状态,git会告诉你:master分支上的暂存区有变动,new了一个file,README.md。
    你现在有两个选择,要么把该变动commit到本地仓,要么使用命令行git restore --staged 文件名将该变动撤回。
    我们选择将该变动commit到本地仓。
    commit后查询状态,git会告诉你:master分支上没有变动,很干净,没有啥需要commit的。
    在这里插入图片描述
    例2
    现对README.md如下修改并保存
    在这里插入图片描述
    add后查询状态,git会告诉你:master分支上的暂存区有变动,修改了README.md。
    你现在有两个选择,要么把它commit到本地仓,要么使用命令行git restore --staged 文件名将该变动撤回
    我们选择将该变动撤回。
    撤回后查询状态,git会告诉你:master分支上有变动,修改了README.md。
    你现在有两个选择,要么把它add到暂存区,要么使用命令行git restore 文件名撤销对该文件的修改。
    我们选择撤销对README.md的修改。
    cat查看README.md的内容,它复原了

在这里插入图片描述

  • git reset --hard HEAD^ | git reset --hard origin/master
    git reset --hard HEAD^ ,将HEAD指向上一个版本。HEAD指向当前版本,HEAD^则指向上一个版本,HEAD^^指向上上个版本,HEAD~100则当前往上100个版本。
    git reset --hard origin/master,将HEAD指向远程仓的master分支

参考文章:
廖雪峰git教程
github新手使用手册
git中的core.autocrlf
史上最简单的 GitHub 教程

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值