git 命令大全

摘要

1. 基础配置 git config --list # 查看全部配置 git config --global user.name "名字" # 全局用户名 git config --global user.email "邮箱" # 全局邮箱...

1. 基础配置

git config --list                    # 查看全部配置
git config --global user.name "名字"   # 全局用户名
git config --global user.email "邮箱" # 全局邮箱
git config --global core.editor "vim" # 设置默认编辑器

2. 仓库初始化 & 克隆

git init                             # 初始化本地git仓库
git clone https://xxx.git            # 克隆远程仓库
git clone https://xxx.git 自定义文件夹名

3. 日常提交流程(最常用)

git status                           # 查看文件状态
git add filename                     # 添加指定文件到暂存区
git add .                            # 添加当前目录所有变更到暂存区
git add -A                           # 添加所有(新增/修改/删除)文件
git commit -m "feat: 新增登录接口"    # 提交并写备注
git commit --amend                   # 修改上一次提交(覆盖,谨慎)

4. 查看差异 & 日志

git diff                             # 工作区 vs 暂存区
git diff --cached                    # 暂存区 vs 最近一次commit
git log                              # 查看提交日志
git log --oneline                    # 简洁单行日志(强烈推荐)
git log --graph --oneline --all      # 图形化看分支走向
git show commitId                    # 查看某次提交详情

5. 分支操作(新版 switch 为主,兼容 checkout)

git branch                           # 查看本地分支
git branch -a                        # 查看本地+远程所有分支
git branch dev                       # 创建dev分支,不切换
git switch -c dev                    # 创建并切换到dev分支(新版推荐)
git switch dev                       # 切换到dev分支
git checkout -b dev                  # 旧版:创建+切换分支
git checkout dev                     # 旧版:切换分支

git merge dev                        # 将dev分支合并到当前分支
git branch -d dev                    # 删除已经合并的分支
git branch -D dev                    # 强制删除分支(未合并也删)
git branch -m old new                # 分支重命名

6. 远程仓库

git remote -v                        # 查看远程仓库地址
git remote add origin https://xxx.git # 添加远程源
git remote set-url origin 新地址      # 修改远程仓库地址

git pull origin main                 # 拉取远程main分支并合并
git pull --rebase origin main        # rebase方式拉取(提交线更干净)
git push origin main                 # 推送本地main到远程
git push -u origin main              # 首次推送,绑定上游分支
git push origin --delete dev         # 删除远程dev分支
git fetch origin                     # 拉取远程更新,不自动合并

7. 暂存(stash,临时保存没写完的代码)

git stash                            # 暂存当前未提交改动
git stash save "备注"
git stash list                       # 查看所有stash记录
git stash pop                        # 取出最新stash并删除记录
git stash apply                      # 取出stash,保留记录
git stash drop                       # 删除一条stash
git stash clear                      # 清空所有stash

8. 撤销、回滚(高危!注意区分)

git restore filename                 # 丢弃工作区文件修改(未add)
git reset HEAD filename              # 把文件从暂存区撤回到工作区

# reset三种模式
git reset --soft commitId            # 只回退commit,保留暂存区
git reset --mixed commitId(默认)    # 回退commit,改动放回工作区
git reset --hard commitId            # 彻底回退,丢弃所有改动【慎用】

git revert commitId                  # 新增一个反向提交,不删除历史(生产优先用这个)

9. 标签 tag(版本发布)

git tag                              # 查看标签
git tag v1.0.0                       # 打轻量标签
git tag -a v1.0.0 -m "版本1.0发布"   # 附注标签
git push origin v1.0.0               # 推送单个标签到远程
git push origin --tags               # 推送所有本地标签
git tag -d v1.0.0                    # 删除本地标签
git push origin --delete v1.0.0      # 删除远程标签

10. Rebase 变基(整理提交记录)

git rebase -i HEAD~3                 # 交互式合并最近3条commit
git rebase main                      # 把当前分支变基到main上
git rebase --abort                   # 终止rebase冲突
git rebase --continue                # 冲突解决后继续变基

11. 其他高频

git rm filename                      # 删除文件并加入暂存
git rm --cached filename             # 取消跟踪,本地文件保留(适合加入gitignore)
git mv old.js new.js                 # 文件重命名
git ls-files                         # 查看被git跟踪的文件

12. .gitignore 说明

.gitignore 放在项目根目录,配置不需要纳入版本的文件:node_modules、target、.env、*.log、.idea