Git 命令教程
Git介绍
分布式版本控制系统。
Git命令
初始化/全局配置
git init | 初始化一个Git仓库(会创建一个.git的目录) |
---|---|
git config --global user.name “name” | 设置提交时的用户名 |
git config user.name | 查看设置的用户名 |
git config --global user.email “you@email.com” | 设置邮箱 |
git config user.email | 查看邮箱 |
git config --global credentail.helper store | 保存用户名和密码,不用再次输入 |
git config --list git config --global --list | 查看配置项 查看全局的。local查看本地的 |
操作远程仓库
git clone <仓库地址> git clone -b <仓库地址> | 克隆master分支 克隆指定分支 |
---|---|
git remote add origin | 将本地项目关联到远程仓库 |
git remote rm origin | 删除关联的远程仓库,之后可以重新关联其他的仓库 |
git remote git remote -v git remote show origin | 查看远程仓库名称 查看远程仓库地址 显示指定远程仓库的详细信息,包括url和跟踪分支。(不一定是origin,该值根据git remote给出远程分支名称) |
git fetch git fetch | 自动抓取远程所有分支的更新,但不会自动合并 抓取远程特定的分支 |
git pull <远程仓库名> <远程分支名>:<本地分支名> | 将远程分支拉取到本地分支,并合并。 相当于执行了git fetch和git merge操作,既拉取了代码也进行了合并。 |
本地仓库操作
git checkout | 创建本地分支,加上 -b ,创建后会直接切换到新分支 |
---|---|
git branch git branch -r git branch -a | 查看本地分支 查看所有远程分支 查看本地和远程分支 |
git branch -d | 删除本地分支 |
git branch -m | 重命名分支,-M 强制 |
git push | 将本地分支推送到与本地分支同名的远程分支上 |
git push -u origin <本地分支> | 将新建的本地分支推送到远程仓库,-D 强制删除 |
git push origin --delete | 删除远程分支 |
git merge git rebase | 合并分支 变基合并 |
git merge --abort | 终止合并 |
git cherry-pick | 从别的分支复制某次commit提交 |
git status | 查看当前仓库状态 |
git log git log --oneline | 查看提交记录 简洁提交记录 |
git ls-files --stage | 查看所有已跟踪的文件 |
git show git show [commit] git show --oneline git show HEAD~2 | 查看commit 记录 |
git shortlog git shortlog -sn git shortlog -sn --no-merges | 返回每个贡献者的commit次数和message。 提交次数和排名 忽略合并提交次数 |
提交/撤回
git add . git add git add *.txt | 提交所有文件 提交暂存区 添加所有以txt为后缀的文件 |
---|---|
git commit -m | 提交到本地仓库 |
git commit -a -m | 完成add,commit。也可以-am |
git commit --amend -m | 修改上一个提交的commit 的message |
git commit --amend --no-edit | 将新修改的内容,提交到上一个commit中去 |
git config --global alias.cm “commit -m” | 设置别名。简化git commit 。 可以通过 git cm 提交。 |
git reset HEAD git reset HEAD git reset HEAD~N | 撤销git add 命令 |
git restore --staged | 撤销暂存(推荐) |
git reset --hard HEAD^ git reset --hard <commit_id> git reset [–soft | –mixed |
git rm -f | 强制将文件从暂存区和工作区删除 |
git rm --cached | 从暂存区中删除,保留在工作区中 |
git checkout – | 取消在工作区的文件修改 |
git reflog git reflog show HEAD | 显示当前仓库的引用日志,这包括分支的切换、提交、重置等重要操作。多用于恢复内容。 |
存储
将未提交的修改(工作区 + 暂存区)临时保存到栈中,清空当前工作目录,便于切换分支、中断当前开发去修复紧急bug、跨分支转移代码等。拉取合并最新的更改时本地已经进行了修改,但是想要保留时也可以将其暂存。
git stash git stash -u | 保存所有已跟踪文件的修改 另外再包含未跟踪的文件 |
---|---|
git stash list | 查看存储列表 |
git stash pop | 恢复最新存储并且删除记录 |
git stash apply | 恢复存储但不删除记录,默认从stash@{0}恢复 |
git stash apply stash@{N} | 恢复指定存储 |
git stash drop stash@{1} | 删除指定存储 |
git stash clear | 删除所有 |
#### 标签 | |
---|---|
git tag git tag -l “v1” | 查看所有标签 查找以v1开头的标签 |
git tag show | 查看某个标签的详细信息 |
git tag git tag -a -m “” git tag | 创建新标签 添加备注信息 为特定commit创建标签 |
git push origin --tags git push origin | 推送所有标签 推送指定标签 |
git tag -d git tag push origin --delete | 删除指定标签 删除远程标签 |
git fetch --tags | 远程标签拉取到当前分支 |
git checkout -b | 检出标签 |
差异对比
git diff | 查看工作区和暂存区的差异 |
---|
flow
git flow init | 初始化 |
---|---|
git flow feature start login | 功能分支 |
git flow feature publish login | 推到远程分支 |
git flow feature pull login | 拉取分支 |
提交规范
feat | 新增功能 | feat(auth): 添加手机号登录功能 |
---|---|---|
fix | 修复Bug | fix(login): 修复密码验证逻辑错误 |
refactor | 代码重构(非功能/修复) | refactor(api): 解耦支付校验逻辑 |
docs | 文档更新 | docs(readme): 补充安装步骤说明 |
style | 代码格式调整(不影响逻辑) | style(button): 统一按钮间距样式 |
perf | 性能优化 | perf(load): 减少首页图片加载时间 30% |
test | 测试用例变更 | test(order): 添加取消订单的单元测试 |
build | 构建系统/依赖变更 | build(deps): 升级 React 至 v18.3 |
ci | 持续集成配置变更 | ci(github): 添加自动化测试流水线 |
chore | 杂项任务(非代码/测试) | chore: 更新 ESLint 规则配置 |
revert | 撤销提交 | revert: 回退支付接口变更 (abc123) |
merge | 分支合并(通常由工具生成) | merge: 合并 feature/payment 到 main |