Git基本使用
本文最后更新于 2025年8月4日 晚上
参考:
Git 教程 | 菜鸟教程 。
常用 Git 命令清单 - 阮一峰的网络日志 。
Git 使用规范流程 - 阮一峰的网络日志 。
工作流程
工作区 => 暂存区 => 版本库 => 远程仓库
创建仓库
新建仓库
git init
在当前目录新建一个 Git 仓库,会在当前目录生成一个 .git
目录
git init <dirName>
在当前目录新建一个 dirName
Git 仓库目录,会在 dirName
目录生成一个 .git
目录
克隆仓库
git clone <repo>
从 repo
地址克隆仓库到当前目录,repo
地址可以是 URL 地址也可以是本地地址
git clone <repo> <dirName>
从 repo
地址克隆仓库到当前目录下的 dirName
目录
提交修改
添加
git add <fileName>
添加当前目录下的 fileName
文件到暂存区(可同时添加多个)
git add <dirName>
添加当前目录下的 dirName
目录到暂存区
git add .
添加当前目录下的所有内容到暂存区
提交
git commit -m <message>
将暂存区的所有内容提交到版本库,message
是备注信息
git commit <fileName> -m <message>
将暂存区的 fileName
文件提交到版本库(可同时提交多个)
git commit -a
修改文件后不需要执行 git add
命令,直接提交
回退
git checkout <fileName>
从暂存区回退 fileName
文件到工作区
git checkout .
从暂存区回退所有内容到工作区
git checkout <commit> <fileName>
从版本库的 commit
版本回退 fileName
文件到暂存区和工作区
git reset HEAD^
重置暂存区所有内容到上个版本,但工作区不变
git reset HEAD^^
重置暂存区所有内容到上上个版本,但工作区不变
git reset --hard
重置暂存区与工作区所有内容到上个版本
git reset <fileName>
重置暂存区 fileName
文件到上个版本,但工作区不变
git reset <commit>
重置当前分支的指针为 commit
版本,但工作区不变
git reset --keep <commit>
重置当前分支的 HEAD 为指定 commit
版本,但保持暂存区和工作区不变
git reset --hard <commit>
重置当前分支的 HEAD 为指定 commit
版本,同时重置暂存区和工作区为 commit
版本
git revert <commit>
新建 commit
版本用来撤销旧版本,后者的所有变化都将被前者抵消,并且应用到当前分支
查看文件状态
git status
查看当前版本状态(在你上次提交之后是否有对文件进行再次修改)
git status -s
获得简短的结果
删除工作区文件
https://www.runoob.com/git/git-rm.html
操作工作区文件
https://www.runoob.com/git/git-mv.html
远程操作
远程仓库的操作
git remote -v
显示远程仓库所有分支的信息
git remote show <remote>
显示远程仓库 remote
分支的信息
git remote add <repo> <url>
添加远程 url
地址仓库,并命名该仓库在本地的名字为 repo
(常命名为 origin
)
上传代码并合并
git push <repo> <branchName1>:<branchName2>
上传本地仓库的 branchName1
分支到远程 repo
仓库的 branchName2
分支
git push <repo> <branchName>
上传本地仓库的 branchName
分支到远程 repo
仓库的 branchName
分支(本地分支名与远程分支名相同)
git push <repo> --force
强行推送本地仓库的当前分支到远程 repo
仓库,即使有冲突(本地分支名与远程分支名相同)
git push <repo> --all
推送本地仓库的所有分支到远程 repo
仓库
下载代码并合并
git pull <repo> <branchName1>:<branchName2>
从远程 repo
仓库下载 branchName1
分支到本地仓库 branchName2 分支
git pull <repo> <branchName>
从远程 repo
仓库下载 branchName
分支到本地仓库 branchName
分支(本地分支名与远程分支名相同)
从远程获取代码库
git fetch <repo>
下载远程 repo
仓库的所有变动
分支管理
列出分支
git branch
列出所有本地分支
git branch -r
列出所有远程分支
git branch -a
列出所有本地分支和远程分支
新建分支
git branch <branchName>
新建 branchName
分支,但依然停留在当前分支
git checkout -b <branchName>
新建 branchName
分支并立即切换到该分支下
git branch <branchName> <version>
新建 branchName
分支,指向版本库的指定版本
git branch --track <branchName> <remoteBranch>
新建 branchName
分支,与远程的 remoteBranch
分支建立追踪关系
切换分支
git checkout <branchName>
从当前分支切换到 branchName
分支
git checkout -
从当前分支切换到切换到上一个分支
删除分支
git branch -d <branchName>
删除本地 branchName
分支
git branch -d -r <repo> <branchName>
删除远程 repo
仓库的 branchName
分支
合并分支
git merge <branchName>
合并 branchName
分支到当前分支
git cherry-pick <version>
从版本库选择一个版本合并进当前分支
重命名分支
git branch -M <oldbranchName> <newbranchName>
将本地 oldbranchName
分支重命名为 newbranchName
重命名远程分支的做法:删除远程待修改分支后上传本地分支到远程
查看提交
查看历史提交记录
git log
查看历史提交记录(从近到远)
git log --oneline
查看历史记录的简洁版本
git log --graph
查看历史中何时出现分支和合并
git log --reverse
逆向查看历史提交记录(从远到近)
查看指定文件历史修改记录
git blame <fileName>
以列表形式查看 fileName
文件的历史修改记录
标签
查看标签
git tag
列出所有标签
新建标签
git tag <tagName>
新建名为 tagName
标签
选项解释
- -f –force:强制
- -d –delete:删除
- -D –delete –force 的快捷键
- -m –move:移动或重命名
- -M –move –force 的快捷键
- -r –remote:远程
- -a –all:所有