Git 开发工具 学习笔记

Git 常用命令与工作流笔记

雾汐

1
git init

初始化仓库

1
2
git config --global user.name "..." 
git config --global user.email ...

配置 git 的名称和邮箱

1
git add <file>

暂存,一键全部暂存时用 .(不推荐)

1
git commit -m "message"

提交,message 可以规范格式如

[类型] 简短描述

  • [Feature]:新功能
  • [Fix]:修补 Bug
  • [Docs]:仅修改文档/注释
  • [Refactor]:代码重构(无新功能)
  • [Art]:美术资源更新
1
git commit --amend

可以用于修改上一次的 commit

1
git commit --amend -m ""

写错 message 时可以修改

1
2
git add <file>
git commit --amend
1
git status

查看哪些文件被修改,可以看到工作区修改,也可以看到未提交的暂存区

1
2
3
工作区&暂存区  git diff <file>
工作区&版本库  git diff HEAD <file>
暂存区&版本库  git diff --cached <file>

查看修改的位置

1
git log (--pretty=oneline)

查看最近三次提交, oneline 简化输出信息

1
git reflog

可以记录每一次命令及其哈希值

1
git reset (--hard) (...)

回退版本

  • --hard:回退到上个版本的已提交状态
  • --soft:回退到上个版本的未提交状态
  • --mixed:回退到上个版本的未添加状态
  • 缺省 + <file>:把文件的暂存状态去除

... 可以为哈希值,也可以为 HEAD 的相对地址

HEAD^ 为上一个版本

HEAD~n 为前 n 个版本

1
git checkout <file>

取消工作区的修改,不论之前是暂存区还是版本库

如果要撤销已暂存的更改可以使用

1
2
git checkout <file>
git reset <file>
1
2
git checkout -b <branch>
git switch -c <branch>

创建并切换分支

1
2
git checkout <branch>
git switch <branch>

切换分支

1
git branch

查看所有分支

1
git branch -d(-D) <branch>

删除分支,-D 强制删除,用于删除还没合并的分支

1
git merge (--no-ff -m "message") <branch>

<branch> 分支合并到当前分支,若发生冲突就修改后 addcommit

不使用 fastforward 可以使工作流更清晰(推荐)

merge 后可以生成新的 commit-m 输入信息

1
git log --graph --pretty=oneline --abbrev-commit

可以可视化分支的提交与合并

1
git stash

当出现发现前面出现 bug 但当前不方便提交时,可以暂存当前记录

1
git stash list

可以查看之前暂存的记录

1
git stash apply stash@{number}

可以恢复该记录

1
git stash drop stash@{number}

可以删除该暂存记录

1
git stash pop stash@{number}

上面二者合一,即恢复与删除

1
git cherry-pick <hash>

可以把某个哈希值做的小修改拿来

1
git rebase <branch>

使合成到 <branch> 时保持线形

1
git remote add origin <ssh>

本地关联远程 repo

1
git clone <ssh>

克隆远程仓库

1
git fetch

抓取远程分支决定是否合并,可以后面接 rebase

1
git pull (--rebase)

抓取远程分支,产生 merge 记录

rebase 会把提交“放置”在远程拉取的提交之后

解决冲突后需要 git rebase --continue

1
git push -u origin <branch>

本地库的内容推送到远程,建立新分支,后面只需

1
git push origin <branch>
1
git remote -v

查看远程库信息

1
git remote rm <branch>

可以删除绑定的远程库的分支

[!TIP]

冲突暂停时:

  • –continue:继续
  • –abort:放弃整个操作
  • –skip:跳过有问题的,继续工作

ssh

先在Git Bash / VS Code 终端页面输入指令设置密钥

1
ssh-keygen -t rsa -b 4096 -C "~~"

绑定到 GitHub 账户 - Settings - ssh

输入 ssh -T git@github.com 查看是否连接上

若连接上即已完成


选择一个合适的文件夹存放远程仓库

远程仓库克隆(clone)

1
git clone git@gitee.com:username/repositoryname.git [--depth 10]  # 巨型仓库可加深度参数

Git 克隆仓库示例

clone 成功后可以选择需要的分支

设定个人的 email & name

1
2
git config --global user.email "~~"
git config --global user.name "~~"

在某个分支上创造新的分支(checkout)并命名

1
git checkout -b ~~

修改源代码可看到更改

Git 工作区修改示例

点击暂存

输入消息名称后提交(commit)

发送到云端(push)

Git 提交和推送示例

回退上次提交代码

1
git reset --soft HEAD^

强制提交

1
git push -f

查看当前仓库

1
git remote -v

添加远程仓库并查看目前所有可用库

1
2
git remote add branchname git@gitee.com:username/repositoryname.git  # 建立名为 branchname 的远程别名
git remote -v

提取添加的库

1
git fetch branchname

git merge 和 git rebase 的区别

场景 推荐命令
自己开发的本地分支想和主分支同步 git rebase main
团队多人协作的公共分支 git merge
准备提交 PR 前想让历史干净 git rebase
保留合并痕迹、完整历史 git merge
项目 cherry-pick squash
作用 挑出某个提交到当前分支 压缩多个提交为一个
影响范围 跨分支复制提交 当前分支的提交
是否创建新 commit ✅ 是 ✅ 是(旧的被合并)
常见用途 热修复、移植单个功能 整理历史、减少提交数
是否保留历史 部分保留(复制) 不保留(被合并)

评论

© 2026 芝士雾汐