git 进阶
推荐
常用操作整理
git
目录下的index文件损坏会出现fatal: unknown index entry format 0xa0400000
- 初始化
git
先commit
再创建分支否则报错 - 查看当前有哪些改动的状态
git status
,红色
表示有问题绿色
一般是没问题
git仓库
仓库地址修改
git remote -v
# 查看远程仓库的地址
-方式一:修改本地远程仓库地址
git remote set-url origin URL
更换远程仓库地址,URL为新地址。git remote set-url origin https://gitee.com/cxvh/cxvh.git
- 方式二:先删除本地远程仓库地址,然后再添加
git remote rm origin
删除现有远程仓库git remote add origin url
添加新远程仓库1
2
3
4git remote rm origin
git remote add origin https://gitee.com/cxvh/cxvh.git
git remote add gitlab https://gitee.com/cxvh/cxvh.git
git remote add gitee https://gitee.com/cxvh/cxvh.git
远程库与本地库不一致报错
- 提交
git push origin main
- 报错
error: failed to push some refs to 'https://github.com/cxvh/***'
- 解决方法
git pull --rebase origin main
- 该命令的意思是把远程库中的更新合并到(pull=fetch+merge)本地库中,–-rebase的作用是取消掉本地库中刚刚的commit,并把他们接到更新后的版本库之中。出现如下图执行pull执行成功后,可以成功执行git push origin master操作。
1 | error: inflate: data stream error (invalid distance too far back) |
403错误(一般就是权限问题)如何解决、多账号ssh如何配置?
账号密码管理仓库
- 凭据
- win 打开
控制面板
—>右上角搜索凭据
—>点击管理 Windows 凭据
—>找到你的gitee凭据操作 - mac 打开 mac
钥匙串访问
- win 打开
配置ssh
免密管理仓库
1 | # 生成 ssh |
配置文件
1 | # 常用命令 |
配置ssh
1 | Host 39.100.*.* |
创建 Git 账户 和 仓库
账号
1 | # 创建 Git 账户并赋予权限 |
仓库
1 | # 创建文件夹 |
使用
1 | git clone git@cxvh.com:/var/repo/hexo.git |
github 杂记
raw.githubusercontent.com
和github.com
是什么关系呢?
字面意思解读:
githubusercontent
===>github user content
;raw
意思是===>生的; 未经加工的; 自然状态的; 未经处理的; 未经分析的; 原始的;
此时打开github
页面https://github.com/cxvh/cxvh
,再点开README.md
- 当前链接地址:
https://github.com/cxvh/cxvh/blob/main/README.md
README.md
内容部分上面有按钮:Raw
Raw
按钮链接为:https://github.com/cxvh/cxvh/raw/main/README.md
Raw
链接内容跳转至:https://raw.githubusercontent.com/cxvh/cxvh/main/README.md
- 由此得出
raw.githubusercontent.com
是github.com
的原始访问地址。 raw.githubusercontent.com
由于经常被屏蔽,可以用另一种方法获取原始文件。- 复制当前文件地址
https://github.com/cxvh/cxvh/blob/main/README.md
粘贴到jsdelivr - 自动生成链接:https://cdn.jsdelivr.net/gh/cxvh/cxvh@main/README.md
- 发现内容和
raw.githubusercontent.com
的一样:https://raw.githubusercontent.com/cxvh/cxvh/main/README.md - 此时已完美解决
raw.githubusercontent.com
无法访问可能导致的问题(如:brew
无法正常安装)。
加速下载 github 代码
- 原理就是从国外下载到码云(码云的服务器比较快),然后从码云再下载到本地
- 登录码云—>点击新建仓库—>点击导入已有仓库—>粘贴 github 仓库地址—>点击创建—>好了后直接下载即可
github 获取:token
- 方法一. 右上角—>Settings—>Developer settings—>左边分别有 github OAuth 个人访问,根据需要选择
- 方法二. 登录后 直接访问 https://github.com/settings/tokens or https://github.com/settings/tokens/new
github token push
https://cxvh:${GITHUB_TOKEN}@github.com/cxvh/blogs.git
git config --global user.name "cxvh"
git config --global user.email "***@qq.com"
发布一个 github packages
- 初始化 package.json
npm init --scope=cxvh
中的cxvh
必须是你的github用户名,其他随便填写一些description和author,然后一路回车就好。- Step 1: 添加
publishConfig
到package.json
"publishConfig": { "registry": "https://npm.pkg.github.com/" }
- Step 2: 登录
name
为github
登录账号,密码用github
的token
,上面有生成方法,邮箱用github
邮箱npm login --registry=https://npm.pkg.github.com/
package.json
name
格式为@登录名/包名
如:@cxvh/hello-world-npm
- Step 3: Publish
npm publish
github action 配置
根据时间自动构建,文档
1 | # ┌───────────── minute (0 - 59) |
push
或者 pull_request
触发构建
1 | on: |
action克隆到当前仓库示例
1 | name: 每天自动同步仓库 |
报错解决记录
密钥
- win生成密钥
ssh-keygen
写入权限不够报错1
Saving key "\033[A\033[B/c/Users/Baran.Lee/.ssh/id_rsa)\033[D\033[D\033[C\033[\033[D\033[D\033[D\033[D\033[D\033[Dcodeba/id_rsa" failed: No such file or directory
- 进入文件夹
C:\Users\用户\.ssh\gitlab
再执行ssh-keygen
命令
git rebase
- 历史中不连续的
commit
合并git rebase -i head~3
,然后报错如下:1
2
3
4
5
6
7
8
9
10
11interactive rebase in progress; onto bbef1ea
No commands done.
Next commands to do (3 remaining commands):
s ae093ef 更新 circleci 配置文件
s 1ab23ac 更新 circleci 配置文件2
(use "git rebase --edit-todo" to view and edit)
You are currently editing a commit while rebasing branch 'main' on 'bbef1ea'.
(use "git commit --amend" to amend the current commit)
(use "git rebase --continue" once you are satisfied with your changes)
nothing to commit, working tree clean - 回到rebase执行之前的状态
git rebase --abort
git push
git push orgin main
1
2
3
4
5
6
7
8
9
10
11
12fatal: 'orgin' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
#
$ git push orgin主要
致命的:“orgin”似乎不是git存储库
致命:无法从远程存储库读取。
请确保您具有正确的访问权限
并且存储库存在。- 干掉.git目录,重新配置 git init…
git push提交会提示
1 | fatal: unable to access 'https://github.com/cxvh/cxvh-cli-test.git/': OpenSSL SSL_connect: Connection was reset in connection to github.com:443 |
https
链接改为ssh
链接即可:git remote set-url origin git@github.com:cxvh/cxvh-cli-test.git
小技巧
git update-git-for-windows
升级git
版本- 使用
ssh
协议克隆时记得先生成公钥配置到git
仓库 - 生成密钥时,确保路径是正确的(路径存在),默认会生成在
user
用户下面的.ssh
文件夹下面,如果.ssh
不存在则保存失败,需要手动创建.ssh
文件夹
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BARAN的小站🎈!