0%

Git 常用基本命令

本文主要介绍 Git 常用的基本命令。

基本命令

仓库相关命令

  • 创建新仓库
1
git init
  • 克隆项目
1
git clone https://github.com/Erik-ly/git-test.git
  • 查看当前配置
1
git config --list
  • 配置用户名
1
git config --global user.name "xxx"
  • 配置邮箱
1
git config --global user.email "xxx@xxx.com"

提交相关命令

  • 添加某个文件到暂存区
1
git add test.txt
  • 添加所有文件到暂存区
1
git add .
  • 查看仓库当前状态
1
git status
  • 显示变更信息
1
git diff
  • 提交暂存区到本地仓库
1
git commit -m "add test file"
  • 下载远程代码并合并
1
git pull
  • 上传远程代码并合并
1
git push
  • 查看历史提交记录
1
git log

分支相关命令

  • 基于当前 HEAD 创建新分支
1
git branch release
  • 切换分支
1
git checkout release
  • 创建一个分支,并切换到该新分支
1
git checkout -b dev
  • 显示本地分支
1
git branch
  • 显示所有分支
1
git branch -a
  • 删除本地分支(删除其他分支,不能删除当前分支, -D 是强制删除)
1
git branch -d dev2
  • 将本地分支上传到远程
1
git push origin dev
  • 获取所有远程分支
1
git fetch
  • 切换远程分支到本地
1
git checkout -b dev origin/dev
  • 合并特定 commit 到另一个分支

比如我在 dev 分支修改了一个bug,提交为 “fix bug-7”,现在需要把 dev 分支的这个代码合并到 release 分支。

首先在需要合并的 commit 所在的分支下使用 git log 查看,找到 “fix bug-7” 的 commit 为 “072a2e524c9fe3d082dfce37762e4a43e200484c”,按 Q 键退出日志查看。

1
2
3
4
5
6
7
Erik@DESKTOP-M3B942V MINGW64 ~/IdeaProjects/git-test (dev)
$ git log
commit 072a2e524c9fe3d082dfce37762e4a43e200484c (HEAD -> dev, origin/release-1.0, origin/dev, release-1.0)
Author: “liuyang” <liuyangerik@gmail.com>
Date: Sun Jun 13 11:00:36 2021 +0800

fix bug-7

然后切换到 release 分支。

在 release 分支上执行执行 pick 操作

1
2
git checkout release
git cherry-pick 072a2e524c9fe3d082dfce37762e4a43e200484c

tag 相关命令

  • 显示已存在的 tag
1
git tag
  • 创建 tag
1
git tag -a v1.0 -m "v1.0 tag"
  • 删除本地 tag
1
git tag -d v1.0
  • 查看 tag 信息
1
git show v1.0
  • 推送所有 tag 到远程仓库
1
git push --tags

撤销相关命令

  • 恢复暂存区的指定文件到工作区
1
git checkout file_name
  • 恢复暂存区的所有文件到工作区
1
git checkout .
  • 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
1
git reset [file]
  • 重置暂存区与工作区,与上一次commit保持一致
1
git reset --hard
  • 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致,commit 之后的版本都会丢失
1
git reset --hard [commit]
  • 撤销某次操作,此次操作之前和之后的 commit 都会保留
1
git revert [commit]

IDEA Git 相关操作

仓库相关操作

  • 原有项目引入 Git 管理

原有项目使用 IDEA 打开,依次点击 VCS — Import into Version Control — Create Git Repository…

image-20210614095503728

image-20210614095529290

在弹出的对话框中选择这个项目,点击 “OK” 即可。

下面以项目放到 GitHub 为例,首先在 GitHub 上创建项目,

image-20210614095959894

然后添加源端仓库,

image-20210614094523563

image-20210614100255144

image-20210614100315234

commit 代码后,提交到远程仓库。

image-20210614100358673

  • 添加其它远端仓库

image-20210614094523563

image-20210614094629934

image-20210614094927469

Name 写为 非 “origin” 的名字,可根据 Git 仓库工具,比如:GitBucket。之后提交代码的时候可选择改仓库提交。

提交相关操作

  • 更新代码

推荐使用下图红框中标注的按钮拉取更新代码,快捷键 Ctrl + T ,这种会更新全部,拉取新的分支,自动 merge 等,不容易出错。

image-20210613112929011

image-20210613113545159

  • commit 提交代码

使用快捷键 Ctrl + K, 提交代码

image-20210614084716254

  • Push 代码

使用快捷键 Ctrl + Shift + K push 代码

image-20210614084820056

提交代码步骤

  1. 更新最新代码(快捷键:Ctrl + T),将代码更新到最新。
  2. 修改代码。
  3. 更新最新代码(快捷键:Ctrl + T),提交代码之前要先更新代码,在修改代码这段时间内,如果有其他人修改了代码,需要更新,否则可能会覆盖别人的代码,另外这时更新,如果有 Merge 的情况,会自动 Merge,或让自己来 Merge 代码,在提交记录里不会出现大量的 Merge 记录。
  4. Add 代码,无特殊情况,在项目上执行下 ADD 操作,将自己新加的或之前 Merge 的一些文件 add 进来;
  5. Commit 代码(快捷键:Ctrl + K),注意写清楚修改了哪些内容,尽量一个功能一个 commit,可以在 commit 对话框中选择本次要提交的文件;
  6. Push 代码(快捷键:Ctrl + Shift + K),提交代码时注意将要提交到哪个分支,这里 push 所有 commit,无法选择某个 commit push。

分支相关操作

  • checkout 新分支

image-20210613113936478

image-20210613114018124

  • 切换分支

image-20210613114155693

  • 删除本地分支

image-20210614084321087

  • 将本地分支推送到远端

如在本地 checkout 出一个 “release-1.0” 分支,需要将这个分支推送到远端,则可以使用 Ctrl + Shift + K 进行 Push,在弹出框中看到 ”release-1.0 → origin:release-1.0“,如果不是这样,则可点击分支进行手动修改(红框中带有下划线部分均可点击后修改),点击 ”Push“ 按钮进行提交即可。

image-20210613110545114

  • 查看提交记录

image-20210614085024101

  • 查看某个分支的提交记录

可以选择本地的分支

image-20210614085124801

也可以通过 “Select…” 手动输入特定分支,按 Ctrl + Enter 确定

image-20210614090900079

image-20210614091026594

  • Pick 合并 commit 到其它分支

image-20210614091514290

如果需要 Merge

image-20210614091819551

image-20210614091935163

tag 相关操作

  • 创建 tag

在某个 commit 又键,选择 “New Tag …”

image-20210614144459410

然后输入 tag 名称

image-20210614144526764

最后推送到远端,注意要勾选 “Push Tags”

image-20210614144644304

撤销相关操作

  • reset 操作

image-20210614094123232

  • revert 操作

image-20210614094148822

参考资料