本人目前正在学习git的相关指令,感觉各种概念真的很容易混淆,各种指令也难以完全记住,因此把git相关的指令画在了一张图里面,便于学习。(图还在不断更新,本质上是一个查阅表,细节可以另行搜索,大家可以评论来查漏补缺)。

git主要涉及四个空间概念,要重点区分:本地工作目录,暂存区,本地仓库,远程仓库。

基础指令:

初始化一个新的本地仓库,创建 .git 目录。

git init

克隆远程仓库到本地工作目录,[url]为github仓库的http网址。

 git clone [url]

添加文件到暂存区

git add [file]

从暂存区删除文件

git rm –cached <file>

提交暂存区到本地仓库中,m表示提交信息,提交信息写在双引号""内

git commit -m [message]

如: git commit -m "my commit"

查看 Git 仓库当前状态(使用频率极高)

git status

显示:
当前分支的名称
当前分支与远程分支的关系(如是否是最新的)
未暂存的修改:显示已修改但尚未使用 git add 添加到暂存区的文件列表
未跟踪的文件:显示尚未纳入版本控制的新文件列表

查看提交历史

git log

显示:
提交哈希
作者信息
提交日期
提交信息(git commit时-m写的信息)

查看分支/新建分支

git branch  # 查看分支,当前分支有*标记
git branch <branchname> # 创建新分支

删除分支

git branch -d <branchname>

切换到某个分支

git checkout <branch_name>  # 旧命令
git switch <branch_name>  # 新命令

创建并切换到某个分支

git checkout -b <branch_name>  # 旧命令
git switch -c <branch_name>  # 新命令

将某分支合并到当前分支

git merge <branchname>

给某次commit打标签

git tag
# 如 git tag v1.0
# 用于标记当前提交的版本号之类

这里要注意tag和branch的区别,两者都相当于指针,指向commit,当有新commit时,branch向前移动,指向最新的commit,达到更新branch的作用,而tag位置不变,仍标记此次的commit。
即tag(静态),branch(动态)。

但这里就有一个关键问题,commit很依赖branch,而如果使用

git checkout <tag_name>

进入tag后,会进入如下的状态:

git branch
* (HEAD detached at v1.0)
  master
  test

当前并不在任何branch下面,贸然进行commit会有丢失的风险,所以使用tag的最好操作流程是:

git checkout <tag_name> # 切换到当前tag
git switch -c <new_branch>  # 先创建一个分支
# 修改代码
git commit # 提交

当然也可以一步操作:

git switch -c <new_branch> <tag_name>

查看文件之间的差异(也用的比较多):

git diff [file]  # 显示暂存区和工作区的差异
git diff --cached [file] # 显示暂存区和上一次提交(commit)的差异
git diff [first-branch] [second-branch] # 显示两次提交之间的差异

管理远程仓库

git remote # 列出当前仓库中已配置的远程仓库
git remote -v # 列出当前仓库中已配置的远程仓库,并显示它们的 URL
git remote add <remote_name> <remote_url> # 添加一个新的远程仓库。指定一个远程仓库的名称和 URL,将其添加到当前仓库中
git remote remove <remote_name> # 从当前仓库中删除指定的远程仓库

推送到远程仓库

git push <远程主机名> <本地分支名>:<远程分支名>
git push <远程主机名> <本地分支名>  # 本地分支和远程分支名字相同
git push <远程主机名> --delete <远程分支名> # 删除远程分支

获取远程仓库更新

git fetch

获取远程仓库更新并合并

git pull

常见开发流程:

Step 1:fork 仓库(github上操作)

Step 2:clone 自己的 fork

git clone YOUR_REPO

Step 3:创建功能分支

git switch -c feature_x

Step 4:修改 + commit

git add
git commit

Step 5:push 到自己的 repo

git push origin feature_x

Step 6:在 GitHub 提起pull request(PR)

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐