git

lishihuan大约 7 分钟

git

使用

检查项目状态-是否有需要提交的

git status

已经仓库管理

E:\202106淘宝前端--web前端开发视频教程\【20】Vue实战项目:电商管理系统(Element-UI)\day01-项目初始化登录功能开发\07.本地项目托管到GitHub或码云中_.mp4

# 将所有的文件添加到暂存区
git add .

## 提交
git commit -m "add"
# 本地仓库和云端仓库建立连接
git remote add origin https://gitee.com/mylishihuan/vue_shop.git
# 本地仓库和云端仓库建立连接
git push -u origin "master"

新建仓库

mkdir vue_shop
cd vue_shop
git init 
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/mylishihuan/vue_shop.git
git push -u origin "master"

查询当前分支

git branch 查询当前分支,* master 表示当前在 master 分支上

D:\Git\vuepress-theme-hope\my-docs>git branch
  gh-pages
* master

git pull origin master

git pull 命令用于从远程仓库拉取最新的更新,并自动合并到当前分支。拉取更新的同时会合并对应分支最新的代码,如果有冲突则需要手动解决。

origin 是远程仓库的名称,一般默认为 origin。在 Git 中,可以配置多个远程仓库,每个远程仓库都有一个名称,方便区分不同的仓库地址。例如,通过命令 git remote add upstream git://github.com/user/repo.git 添加一个名为 upstream 的远程仓库,然后就可以使用 git pull upstream master 拉取这个远程仓库名为 upstream 的仓库的更新。

master 是分支名称,代表你想要从哪个分支拉取最新的代码。如上述命令中,origin 是远程仓库的名称,master 是该仓库中的分支名称,表示从远程仓库的 master 分支拉取最新的代码。

因此,git pull origin master 的意思就是从名为 origin 的远程仓库的 master 分支拉取最新的更新。

整理

在本地使用 VuePress 构建静态文件:
npm run docs:build
进入生成的 dist 文件夹:
cd src/.vuepress/dist/
初始化 Git 仓库(如果之前没有初始化过):
git init
添加所有文件到 Git 中:
git add .
提交代码:
git commit -m "Initial commit"
关联到远程 Git 仓库:
git remote add origin https://github.com/your-username/your-repo.git
强制推送代码到远程 gh-pages 分支:
git push -f origin gh-pages

git remote add origin https://github.com/your-username/your-repo.gitopen in new window

将当前本地仓库与 GitHub 上的一个远程仓库关联起来。它将远程仓库的地址设置为 https://github.com/your-username/your-repo.git,并将这个远程仓库命名为open in new window origin。

git push -f https://github.com/your-username/your-repo.gitopen in new window

强制推送本地最新提交的代码到 Gitee 上的一个远程仓库。它将最新的代码推送到 https://github.com/your-username/your-repo.git 这个远程仓库中去,而这个远程仓库与之前使用 git remote add 命令添加的名为 origin 的远程仓库不同。

git push -f https://gitee.com/mylishihuan/notes_book.gitopen in new window gh-pages

将 gh-pages 分支推送到远程仓库:

git push -f origin gh-pages

强制推送代码到远程 gh-pages 分支

切换回 master 分支

# 切换回 master 分支
git checkout master
# 推送到 master 分支
git pull origin master
git add -A
git commit -m 'deploy'
git push -f origin gh-pages
#!/usr/bin/env sh

# 确保脚本抛出遇到的错误
set -e

# 安装依赖并编译代码
npm install
npm run build

# 提交源码到 master 分支
git add -A
git commit -m 'deploy'
git push origin master

# 校验本地和远程的 gh-pages 分支是否存在
if git rev-parse --verify gh-pages >/dev/null 2>&1; then
  git checkout gh-pages
else
  git checkout --orphan gh-pages
fi

# 删除 gh-pages 分支中的所有内容
git rm -rf .

# 将编译后的代码复制到 gh-pages 分支中
cp -R dist/* .

# 提交到 gh-pages 分支并推送到远程仓库
git add -A
git commit -m 'deploy'
git push -f origin gh-pages

# 切换回 master 分支
git checkout master

# 检查本地是否存在 gh-pages 分支
if `git branch | grep -q "gh-pages"`; then
  git branch -D gh-pages
fi

# 检查远程仓库是否存在 gh-pages 分支
if `git ls-remote --heads origin gh-pages | grep -q "refs/heads/gh-pages"`; then
  git push origin --delete gh-pages
fi

# 校验本地和远程的 gh-pages 分支是否存在
if git rev-parse --verify gh-pages >/dev/null 2>&1; then
  git checkout gh-pages
else
  git checkout --orphan gh-pages
fi
#!/usr/bin/env sh

# 确保脚本抛出遇到的错误
set -e

# 提交源码到 master 分支
git add .
git commit -m "update source code"
git push origin master

# 编译代码
npm run docs:build

# 切换到 dist 目录
cd src/.vuepress/dist/

# 校验远程的 gh-pages 分支是否存在。如果存在则先删除
if git ls-remote origin refs/heads/gh-pages | grep -swq "refs/heads/gh-pages"; then
  git push origin --delete gh-pages
fi

# 本地切换到 gh-pages 分支
git checkout -b gh-pages

# 将 dist 目录下的文件推送到 gh-pages 分支
git add .
git commit -m "deploy docs"
git push -f origin gh-pages

# 切换回 master 分支
git checkout master

git结合shell 脚本对本地和远程分支进行校验是否存在

# 校验远程的 gh-pages 分支是否存在。如果存在则先删除
if git ls-remote --heads origin gh-pages | grep -q 'refs/heads/gh-pages'; then
  git push --delete origin gh-pages
  # 删除远程 gh-pages 分支
  echo "已删除远程 gh-pages 分支"
fi

# 判断本地是否有 gh-pages 分支,如果有则直接切换,没有则创建
if git branch | grep -q "gh-pages"; then
  echo "本地 gh-pages 分支存在"
  # 删除本地分支
  git branch -D gh-pages
fi

git branch

查看当前所在的分支

git branch -D gh-pages

删除本地gh-pages仓库

git rm -rf .

# 删除 gh-pages 分支中的所有内容
git rm -rf .

git checkout master 和git switch master 区别是什么

git checkoutgit switch 都是 Git 命令,用于切换分支。它们的区别在于,git switch 是 Git 2.23 版本引入的新命令,而 git checkout 是早期版本的命令。

具体来说,git checkout 命令在之前的版本中被广泛使用,可以用于切换分支、切换标签或还原工作目录等操作。但是,由于其用法较为灵活,且参数与选项众多,容易导致用户理解不清、使用不当等问题,因此 git switch 命令被引入以替代其部分功能,并提供更加简单和直观的使用方式和语法结构。

从功能上来说,git switchgit checkout 的区别并不大,它们都可以用于切换分支,例如:

# 使用 git checkout 命令切换到 master 分支
$ git checkout master

# 使用 git switch 命令切换到 master 分支
$ git switch master

但是,在参数和选项的使用上,两者是不同的。以切换到新分支并创建一个新的分支为例,使用 git switch 命令的语法如下:

复制代码# 创建并切换到新分支 feature-A
$ git switch -c feature-A

而使用 git checkout 命令则需要先创建分支,再切换到该分支:

# 创建新分支 feature-B
$ git checkout -b feature-B

# 切换到分支 feature-B
$ git checkout feature-B

综上所述,虽然 git switchgit checkout 在切换分支的功能上没有本质区别,但是在实际使用中,根据需要选择合适的命令可以提高开发效率和代码可读性。需要注意的是,如果使用的是 Git 2.23 或更高版本,建议使用 git switch 命令来代替部分 git checkout 命令的功能,以获得更好的使用体验。

git结合shell 脚本对本地和远程分支进行校验是否存在

# 校验远程的 gh-pages 分支是否存在。如果存在则先删除
if git ls-remote --heads origin gh-pages | grep -q 'refs/heads/gh-pages'; then
  git push --delete origin gh-pages
  # 删除远程 gh-pages 分支
  echo "已删除远程 gh-pages 分支"
fi

# 判断本地是否有 gh-pages 分支,如果有则直接切换,没有则创建
if git branch | grep -q "gh-pages"; then
  echo "本地 gh-pages 分支存在"
  # 删除本地分支
  git branch -D gh-pages
fi

异常报错

OpenSSL SSL_read: Connection was reset, errno 10054

https://blog.csdn.net/qq_29493173/article/details/114534057open in new window

鼠标右击:进入Git Bash Here

输入git config --global http.sslVerify "false"

场景导出项目报错

lishihuan@DESKTOP-QE5LN7S MINGW64 /d/java编程/项目/mpush_demo
$ git clone https://github.com/mpush/AndroidDemo.git
Cloning into 'AndroidDemo'...
fatal: unable to access 'https://github.com/mpush/AndroidDemo.git/': OpenSSL SSL_read: Connection was reset, errno 10054

lishihuan@DESKTOP-QE5LN7S MINGW64 /d/java编程/项目/mpush_demo
$ git config --global http.sslVerify "false"

lishihuan@DESKTOP-QE5LN7S MINGW64 /d/java编程/项目/mpush_demo
$ git clone https://github.com/mpush/AndroidDemo.git			## 克隆项目
Cloning into 'AndroidDemo'...
remote: Enumerating objects: 95, done.
remote: Total 95 (delta 0), reused 0 (delta 0), pack-reused 95
Unpacking objects: 100% (95/95), 541.33 KiB | 22.00 KiB/s, done.