KEYWORD: 分布式 版本控制
远程仓库相关
fork操作 复制远程仓库到个人账户用于独立开发
git clone <repo-url> 复制远程仓库到本地
git remote add <repo-name> <repo-url> 可添加多个远程仓库(如 GitHub、Gitee)
git remote add upstream <upstream-repo-url> 便于跟踪源仓库
Default: upstream / origin 源仓库 / 个人远程仓库
git remote -v 查看远程仓库信息
git fetch <repo-name/branch-name> 从远程仓库抓取最新代码和历史,但不合并到本地仓库
git pull <repo-name> <branch-name> 从远程仓库拉取最新代码并合并到当前分支(= fetch + merge )
git push <remote> <branch> 推送至远程仓库
-u 同时关联远端分支和本地分支
初始化及日常操作相关
git init 初始化仓库
git add <file>/. 添加修改文件/所有改动至暂存区
git status 查看当前文件状态
git commit -m '<message>' 暂存区改动保存至本地仓库,生成版本快照
P.S. <message> 规范: 类型(作用域):主题\n正文
git log 查看历史记录
--oneline --graph
分支处理相关
git branch <args>
<branch-name> 建立新分支
-m 重命名分支
git checkout <branch-name> 结算并跳转至新分支
-b 若分支不存在,自动创建新分支
git diff <branch-a> <branch-b> 比较分支间区别
git merge <bacnch-name> 自动选择快速合并 / 三路合并,后者可能要解决合并冲突
--no-ff no fast-forward 强制使用三路合并
--squash 同步但不建立节点联系 可精简信息
git rebase
<branch-name> 给当前分支换基
也有可能要解决冲突 -> add & commit -> git rebase --continue
-i HEAD~3 修改历史记录( -i 交互模式 HEAD~3 从head指针开始向前回溯三个提交)
--continue / --abort 继续 / 终止操作
git worktree 形成多个工作目录
add <new-path> <branch> e.g. path=../project-main -b可形成新分支
remove <path> 移除相关目录
list 查看所有目录
版本回退相关
git reset --soft HEAD~3 安全撤销最近记录(--soft 只移动分支指针,不修改工作目录和暂存区)
与rebase改写历史一样,若上传至远端后不建议再修改,避免不同步,或使用--force强制推送
git restore 安全恢复文件(替代checkout的文件恢复功能)
--source=<commit> -- <file> 从指定提交恢复文件到工作目录 --staged -- <file> 将文件从暂存区移除(取消暂存) --worktree -- <file> 用暂存区内容覆盖工作目录文件
其他技巧
git stash git checkout git stash pop
git tag
创建标签
轻量标签 git tag <标签名> <提交id> 无提交id默认指向最新提交
附注标签 git tag -a <标签名> -m "<标签信息>" <提交ID>
查看标签
git tag
git show <标签名>
推送标签
git push origin <标签id> 使用--tags 一次性推送本地所有标签
删除标签
git tag -d <标签名> 删除本地标签 git push origin :refs/tags/<标签名> 删除远程标签