Skip to content

Latest commit

 

History

History
245 lines (186 loc) · 6.92 KB

File metadata and controls

245 lines (186 loc) · 6.92 KB

git

  • 工作树 -- 暂存区 -- 本地仓库 -- 远端仓库
  • .gitignore 此文件中可放置不想追踪的文件
  • .gitkeep git跟踪文件,如果想要一个空文件夹被跟踪,就创建一个keep文件在下面

index

config

  • git config --global : 配置全局环境
    • user.name : 用户名
    • user.email : 用户邮箱
    • core.editor "vim" : 设置全局编辑器为vim

init

  • --bare <code.git> : 创建没有工作树的仓库

commit

  • 类型(模块):主题
类型 说明
feat 新功能
fix Debug
refactor 重构
docs 改文档
style 改风格
test 加改测试
chore 杂项
perf 性能优化
build 改构建
revert 回滚

add

  • -n : 演习
  • * : 所有 新建的,删除的,修改的
  • . : 新建的,修改的
  • -u : 更新已追踪
  • -f : 允许添加忽略的文件
  • -A, --all : 添加所有已跟踪和未跟踪

log

  • -a查看所有分支的提交记录
  • --stat详细
  • --pretty=[short/oneline]特殊显示
  • --graph更直观
  • --after="YYYY-MM-DD"指定日期
  • --before="YYYY-MM-DD"指定日期
  • --author="xxx"特定作者提交
  • origin/master远端仓库日志
  • 文件/目录单独追踪

branch

  • -avv查看全部分支信息
  • -d/D删除分支
  • -m/M修改主分支
  • -u <remote>/<branch>设置追踪关系
  • --merged列出所有已合并到当前分支的分支
  • --no-merged未合并

switch

  • -c创建并切换分支

merge

  • --no-ff记录合并
  • --squash分支合并为一个提交进行合并
  • --abort出现冲突,终止合并
  • -m <message>提交信息
  • --edit合并提交前,允许编辑提交信息

reset

  • git reset [<模式>] [<提交>]
  • 模式
    模式 HEAD 暂存区 工作区 场景
    --soft 移动 保留 保留 合并多个提交
    --mixed 移动 重置 保留 撤销暂存(默认模式)
    --hard 移动 重置 重置 彻底放弃更改(修复误操作)

rebase

  • <basebranch> #将当前分支更改应用到分支上
  • -i #压缩历史 交互式变基
  • --onto <newbase> <branch> #将分支变基到上
  • --abort #当冲突时撤销合并
  • --continue #继续合并

stash

<stash> 可选参数,指定储藏

  • --all 可以彻底清空所有文件,适用于切换分支时进行
  • list 查看存储状态
  • pop 将栈顶记录恢复并删除
  • drop [<stash>] 直接丢弃栈顶,
  • clear 清除所有记录
  • show [<stash>] 看与栈顶差异
  • save xxx 提交注释

remote

	add	origin URL					#添加远程仓库
	rm origin URL					#删除远程仓库
	-v 								#显示详细信息

push

  • -u origin xxx推送同时,尝试将origin 的 xxx 设置为上游
  • origin xxx --delete删除远端的xxx分支
  • --tags推送全部标签
  • -f强制提交

pull

  • origin xxx覆盖当前工作树
  • --rebase本地分支的提交应用到拉取的提交之上,保持历史线性
  • --no-commit拉取并合并,但不自动提交
  • --edit创建合并提交前,允许编辑提交信息

fetch

  • --all获取所有远端仓库更新
  • --prune拉取更新时,清理已删除的分支

tag

  • 查看所有标签
  • [tag] 设置标签
  • -a 设置标签名
  • -m 填写标签说明
  • git tag v1.0.0轻量标签,适用于临时标记
  • git tag -a v1.0.0 abc123d -m "tag"附注标签,正式发布
  • git push origin --tags推送所有标签
  • git push origin --follow-tags推送所有附注标签

worktree

允许在同一个仓库中同时签出多个分支,每个分支位于各自独立的工作目录(工作树)中

  • 核心概念:
    • 主工作树:最初的仓库目录
    • 链接工作树:worktree add创建的新工作目录,链接到主目录.git
    • 共享存储库:被所有存储库共享的主目录.git
  • 主要优势
    • 并行工作流
    • 避免切换成本
    • 隔离环境
    • 长期任务
  • 命令详解
    • git worktree add ../hotfix-bug-123 hotfix/bug-123
      • -b创建一个新分支并签出它,等同于在新目录git checkout -b
      • --detach让新工作树处于"分离头指针"状态
    • git worktree list列出所有关联到当前仓库的工作树
    • git worktree remove删除一个链接工作树及其目录
    • git worktree prune清理失效记录

restore

  • git restore <FILE> 撤销单个文件工作区修改
  • git restore . 撤销所有工作区修改
  • git restore --staged <FILE> 取消暂存,移回工作区

revert

  • git revert [<参数>] [<提交>]
    • --continue 继续中断的revert
    • --abort 终止revert

search

  1. 限定搜索范围
  • in:description:搜索仓库描述。
  • 使用is:issueis:pr搜索Issue或Pull Request。
  • 星标筛选:使用stars:>1000筛选星标数超过1000的项目。
  • fork数量筛选:使用forks:>100筛选fork数量超过100的项目。
  • 语言筛选:使用language:java筛选使用Java语言的项目。
  • 仓库大小筛选:使用size:>=1000筛选仓库大小超过1000KB的项目。
  • 更新时间筛选:使用pushed:>2020-01-01筛选自2020年1月1日之后有更新的项目。
  • 搜索特定用户或组织的仓库:使用user:usernameorg:organization
  • 搜索特定文件:使用filename:README.md搜索包含特定文件名的项目。
  • 搜索代码:必须登录GitHub账户,且仅对默认分支和小于384KB的文件进行索引。
  1. 排序搜索结果
  • 按交互排序sort:interactions按反应和评论的最高组合数排序。
  • 按反应排序sort:reactions按最高反应数排序。
  • 按作者日期排序sort:author-date按作者日期降序排序。

clean

命令 作用
-n 演习模式 显示会删除的文件,不实际执行
-fd 强制删除 必须加,因为git保护机制