Skip to content

git 工具使用 ​

git_logi

git remote 查看的是主机名
git branch 查看的是分支名

git 提交规范 ​

commit 的类型:

  • feat: 新功能、新特性
  • fix: 修改 bug
  • perf: 更改代码,以提高性能(在不影响代码内部行为的前提下,对程序性能进行优化)
  • refactor: 代码重构(重构,在不影响代码内部行为、功能下的代码修改)
  • docs: 文档修改
  • style: 代码格式修改, 注意不是 css 修改(例如分号修改)
  • test: 测试用例新增、修改
  • build: 影响项目构建或依赖项修改
  • revert: 恢复上一次提交
  • ci: 持续集成相关文件修改
  • chore: 其他修改(不在上述类型中的修改)
  • release: 发布新版本

git 重要命令 ​

git clone ​

克隆某资源的版本库,相当于下载别人的代码。

shell
$ git clone <版本库的网址>

指定本地目录名

shell
$ git clone <版本库的网址> <本地目录名>

git merge ​

冲突解决 https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344

git tag ​

附注标签

shell
$ git tag -a tagName -m "标注信息内容"

删除本地 tag

shell
$ git tag -d "V1.0.0"

删除远程 tag

shell
$ git push origin :refs/tags/v20190514

git 问题解决 ​

git flow 管理策略 ​

  • main/master
  • develop
  • feature/*
  • release/*
  • hotfix/*
txt
日常开发:
从 develop 拉 feature 分支 → 开发完成后合并回 develop。

准备发布:
从 develop 拉 release 分支 → 测试修bug → 合并到 main 打 Tag。

线上紧急修复:
从 main 拉 hotfix 分支 → 修复后合并到 main 和 develop。

git 创建并链接分支 ​

git
// 1,从已有的分支创建新的分支(如从master分支),创建一个dev分支
git checkout -b dev

// 2,创建完可以查看一下,分支已经切换到dev
git branch
dev
master

// 3.建立本地到上游(远端)仓的链接 --这样代码才能提交上去
git branch --set-upstream-to=origin/dev

// 取消对master的跟踪
git branch --unset-upstream master

git 修改本地分支名字 ​

javascript
git branch -m 旧本地分支名 新本地分支名

git push 的时候代码与仓库不一致(仓库有文件未拉取到本地) ​

https://blog.csdn.net/k_young1997/article/details/90489734

git pull --rebase origin master

git fetch 和 git pull 的区别 ​

git fetch 是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
而 git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

git 撤回最新一次commit ​

场景命令
本地未推送git reset --soft HEAD~1
已推送远程git revert HEAD && git push

git reset 和 git revert 的区别 ​

特性git revertgit reset
作用方式创建新提交来“反向”撤销旧提交直接移动分支指针,可能删除提交历史
是否改历史❌ 不改历史(安全,适合公共分支)✅ 改写历史(危险,仅限本地)
是否生成新提交✅ 会生成一个 Revert "xxx" 的提交❌ 不生成新提交
适用场景已推送到远程的提交本地未推送的提交

git 初始化账号密码输入错误,导致绑定失败 ​

GitHub 上的克隆仓库方式 ​

  1. HTTPS:
  2. SSH:
  3. GitHub CLI:

HTTPS ​

HTTPS 是超文本传输安全协议,是 HTTP 协议的安全版本。使用 HTTPS 克隆仓库是最直接的方法:

  • 安全性:数据传输过程中经过 SSL 加密,保证了传输的安全性。
  • 便利性:不需要额外配置 SSH 密钥。
  • 访问控制:通过用户名和密码进行访问控制,也可以使用个人访问令牌(PAT)。
  • 使用方式:
    sh
    git clone https://github.com/username/repo-name.git

命令行网络代理 ​

设置命令行网络代理

sh
# 将8080替换为vpn端口,比如clash一般为7890
git config --global http.proxy "http://127.0.0.1:8080"

git config --global https.proxy "http://127.0.0.1:8080"

取消网络代理

sh
git config --global --unset http.proxy

git config --global --unset https.proxy

同时还可以找到用户环境下的.gitconfig进行设置

txt
[user]
	name = 006094
	email = linsen@fcbox.com
[credential "http://git.fcbox.com"]
	provider = gitlab
[https]
	proxy = http://127.0.0.1:7890
[http]
	proxy = http://127.0.0.1:7890

SSH ​

SSH 是安全外壳协议,是一种网络协议,用于加密方式远程登录到服务器。

  • 安全性:使用非对称加密技术,安全性更高。
  • 便利性:需要在本地生成 SSH 密钥,并将公钥添加到 GitHub 账户。
  • 访问控制:通过 SSH 密钥进行访问控制,适合自动化脚本和持续集成系统。
  • 使用方式:
    sh
    git clone git@github.com:username/repo-name.git

GitHub CLI ​

GitHub CLI 是 GitHub 的命令行工具,它提供了一种更简单、更一致的方式来使用 GitHub。

  • 统一性:提供了一个统一的界面来管理多个 Git 仓库。
  • 功能丰富:除了克隆仓库,还支持其他 GitHub 功能,如 issue 管理、PR 管理等。
  • 配置简单:通过 gh auth login 命令进行身份验证,之后即可使用。
  • 使用方式:
    sh
    gh repo clone username/repo-name

区别 ​

  • 安全性:

    • HTTPS:数据传输加密,适合大多数用户。
    • SSH:更高级别的安全性,适合需要自动化和高级访问控制的场景。
    • GitHub CLI:通过 OAuth 进行身份验证,安全性较高。
  • 配置复杂度:

    • HTTPS:无需额外配置,直接使用用户名和密码或 PAT。
    • SSH:需要生成和配置 SSH 密钥。
    • GitHub CLI:需要安装 CLI 工具并通过 gh auth login 进行身份验证。
  • 使用场景:

    • HTTPS:适合所有用户,特别是那些不需要自动化脚本的用户。
    • SSH:适合需要自动化操作和高级访问控制的用户。
    • GitHub CLI:适合需要统一管理 GitHub 操作的用户。
  • 访问控制:

    • HTTPS:基于用户名和密码或 PAT。
    • SSH:基于 SSH 密钥。
    • GitHub CLI:基于 OAuth。