git常用指令
配置账户信息
配置github/gitee账户信息,在新建仓库页面可以查询/复制
| git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
|
(去掉 --global 可配置当前仓库的单独信息)
查看配置信息:
| git config --list # 列出所有配置
git config user.name # 查看用户名
|
仓库操作
初始化
克隆远程仓库到本地:
| git clone <远程仓库地址> # 例如:git clone https://github.com/username/repo.git
|
关联远程仓库(本地仓库未关联时,只需要第一次关联):
| git remote add origin <远程仓库地址> # origin是远程仓库的默认别名
|
查看远程仓库信息:
| git remote # 列出远程仓库别名
git remote -v # 显示远程仓库详细地址
|
文件状态与暂存
查看文件状态(工作区与暂存区差异):
| git status # 详细状态(未跟踪、已修改、已暂存等)
git status -s # 简洁状态(??:未跟踪;M:已修改;A:已暂存)
|
将文件添加到暂存区:
| git add <文件名> # 添加单个文件
git add . # 添加当前目录所有修改(包括新增、修改,不包括删除)
git add -u # 添加已跟踪文件的修改和删除(不包括新增)
|
从暂存区撤销文件(回到工作区):
| git restore --staged <文件名> # 替代旧版的 git reset HEAD <文件名>
|
提交与日志
提交暂存区文件到本地仓库:
| git commit -m "提交说明" # 提交并添加备注(必填,清晰描述修改内容)
git commit -am "提交说明" # 跳过暂存区,直接提交已跟踪文件的修改(不包括新增)
|
查看提交日志:
| git log # 显示完整提交历史(按q退出)
git log --oneline # 简洁显示(一行一条记录)
git log --graph # 图形化显示分支合并历史
git log -n 3 # 显示最近3条记录
|
撤销最近一次提交(保留修改到工作区):
| git reset --soft HEAD~1 # HEAD~1 表示上一个版本,~2表示上上个,以此类推
|
分支操作
查看分支:
| git branch # 列出本地分支(当前分支前有*)
git branch -r # 列出远程分支
git branch -a # 列出所有分支(本地+远程)
|
创建分支:
| git branch <分支名> # 基于当前分支创建新分支(不切换)
git checkout -b <分支名> # 创建并切换到新分支(常用)
git switch -c <分支名> # 新版Git的切换命令(功能同上)
|
切换分支:
| git checkout <分支名>
git switch <分支名> # 新版推荐
|
合并分支(将目标分支合并到当前分支):
| git merge <目标分支名> # 例如:在main分支执行 git merge dev,将dev合并到main
|
删除分支:
| git branch -d <分支名> # 删除已合并的本地分支
git branch -D <分支名> # 强制删除未合并的本地分支
git push origin --delete <远程分支名> # 删除远程分支
|
远程同步
拉取远程仓库最新代码(合并到本地):
| git pull origin <远程分支名> # 例如:git pull origin main(拉取远程main到本地当前分支)
|
推送本地代码到远程仓库:
| git push origin <本地分支名> # 例如:git push origin dev(推送本地dev到远程dev)
git push -u origin <本地分支名> # 首次推送时关联远程分支,后续可直接git push
|
拉取远程分支到本地(本地无对应分支时):
| git checkout -b <本地分支名> origin/<远程分支名>
|
撤销与回滚
丢弃工作区的修改(未暂存):
| git restore <文件名> # 替代旧版的 git checkout -- <文件名>
|
回滚到指定版本(谨慎使用,会覆盖历史):
| git reset --hard <提交ID> # 提交ID可通过git log查看
git reset --hard HEAD~1 # 回滚到上一个版本
|
查看操作历史(用于找回误删的提交):
| git reflog # 记录所有HEAD变动,可找到被reset删除的提交ID
|
其他常用
忽略文件(创建.gitignore 文件):
| # 在.gitignore中添加不需要跟踪的文件/目录,例如:
node_modules/ # 忽略node_modules目录
*.log # 忽略所有.log文件
|
查看工作区与暂存区的差异:
| git diff # 工作区与暂存区的差异
git diff --staged # 暂存区与本地仓库的差异
|
暂存工作区修改(临时切换分支时用):
| git stash # 暂存当前修改
git stash pop # 恢复最近一次暂存并删除记录
git stash list # 查看所有暂存记录
|