Git基本使用

本文最后更新于 2025年8月4日 晚上

参考:
Git 教程 | 菜鸟教程
常用 Git 命令清单 - 阮一峰的网络日志
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:所有

Git基本使用
https://xuekeven.github.io/2021/08/07/Git基本使用/
作者
Keven
发布于
2021年8月7日
更新于
2025年8月4日
许可协议