跳转至

git常用指令

配置账户信息

配置github/gitee账户信息,在新建仓库页面可以查询/复制

1
2
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
(去掉 --global 可配置当前仓库的单独信息) 查看配置信息:
1
2
git config --list  # 列出所有配置
git config user.name  # 查看用户名

仓库操作

初始化

1
git init
克隆远程仓库到本地:
1
git clone <远程仓库地址>  # 例如:git clone https://github.com/username/repo.git
关联远程仓库(本地仓库未关联时,只需要第一次关联):
1
git remote add origin <远程仓库地址>  # origin是远程仓库的默认别名
查看远程仓库信息:
1
2
git remote  # 列出远程仓库别名
git remote -v  # 显示远程仓库详细地址

文件状态与暂存

查看文件状态(工作区与暂存区差异):

1
2
git status  # 详细状态(未跟踪、已修改、已暂存等)
git status -s  # 简洁状态(??:未跟踪;M:已修改;A:已暂存)
将文件添加到暂存区:
1
2
3
git add <文件名>  # 添加单个文件
git add .  # 添加当前目录所有修改(包括新增、修改,不包括删除)
git add -u  # 添加已跟踪文件的修改和删除(不包括新增)
从暂存区撤销文件(回到工作区):
1
git restore --staged <文件名>  # 替代旧版的 git reset HEAD <文件名>

提交与日志

提交暂存区文件到本地仓库:

1
2
git commit -m "提交说明"  # 提交并添加备注(必填,清晰描述修改内容)
git commit -am "提交说明"  # 跳过暂存区,直接提交已跟踪文件的修改(不包括新增)
查看提交日志:
1
2
3
4
git log  # 显示完整提交历史(按q退出)
git log --oneline  # 简洁显示(一行一条记录)
git log --graph  # 图形化显示分支合并历史
git log -n 3  # 显示最近3条记录
撤销最近一次提交(保留修改到工作区):
1
git reset --soft HEAD~1  # HEAD~1 表示上一个版本,~2表示上上个,以此类推

分支操作

查看分支:

1
2
3
git branch  # 列出本地分支(当前分支前有*)
git branch -r  # 列出远程分支
git branch -a  # 列出所有分支(本地+远程)
创建分支:
1
2
3
git branch <分支名>  # 基于当前分支创建新分支(不切换)
git checkout -b <分支名>  # 创建并切换到新分支(常用)
git switch -c <分支名>  # 新版Git的切换命令(功能同上)
切换分支:
1
2
git checkout <分支名>
git switch <分支名>  # 新版推荐
合并分支(将目标分支合并到当前分支):
1
git merge <目标分支名>  # 例如:在main分支执行 git merge dev,将dev合并到main
删除分支:
1
2
3
git branch -d <分支名>  # 删除已合并的本地分支
git branch -D <分支名>  # 强制删除未合并的本地分支
git push origin --delete <远程分支名>  # 删除远程分支

远程同步

拉取远程仓库最新代码(合并到本地):

1
git pull origin <远程分支名>  # 例如:git pull origin main(拉取远程main到本地当前分支)
推送本地代码到远程仓库:
1
2
git push origin <本地分支名>  # 例如:git push origin dev(推送本地dev到远程dev)
git push -u origin <本地分支名>  # 首次推送时关联远程分支,后续可直接git push
拉取远程分支到本地(本地无对应分支时):
1
git checkout -b <本地分支名> origin/<远程分支名>

撤销与回滚

丢弃工作区的修改(未暂存):

1
git restore <文件名>  # 替代旧版的 git checkout -- <文件名>
回滚到指定版本(谨慎使用,会覆盖历史):
1
2
git reset --hard <提交ID>  # 提交ID可通过git log查看
git reset --hard HEAD~1  # 回滚到上一个版本
查看操作历史(用于找回误删的提交):
1
git reflog  # 记录所有HEAD变动,可找到被reset删除的提交ID

其他常用

忽略文件(创建.gitignore 文件):

1
2
3
# 在.gitignore中添加不需要跟踪的文件/目录,例如:
node_modules/  # 忽略node_modules目录
*.log  # 忽略所有.log文件
查看工作区与暂存区的差异:
1
2
git diff  # 工作区与暂存区的差异
git diff --staged  # 暂存区与本地仓库的差异
暂存工作区修改(临时切换分支时用):
1
2
3
git stash  # 暂存当前修改
git stash pop  # 恢复最近一次暂存并删除记录
git stash list  # 查看所有暂存记录