Git 常用基本命令

Posted Erik_ly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 常用基本命令相关的知识,希望对你有一定的参考价值。

文章目录


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

基本命令

仓库相关命令

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

提交相关命令

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

分支相关命令

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

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

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

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 操作

git checkout release
git cherry-pick 072a2e524c9fe3d082dfce37762e4a43e200484c

tag 相关命令

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

撤销相关命令

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

IDEA Git 相关操作

仓库相关操作

  • 原有项目引入 Git 管理

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

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

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

然后添加源端仓库,

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

  • 添加其它远端仓库

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

提交相关操作

  • 更新代码

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

  • commit 提交代码

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

  • Push 代码

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

提交代码步骤

  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 新分支

  • 切换分支

  • 删除本地分支

  • 将本地分支推送到远端

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

  • 查看提交记录

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

可以选择本地的分支

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

  • Pick 合并 commit 到其它分支

如果需要 Merge

tag 相关操作

  • 创建 tag

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

然后输入 tag 名称

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

撤销相关操作

  • reset 操作

  • revert 操作

参考资料

  • Git 基本操作 | 菜鸟教程:https://www.runoob.com/git/git-basic-operations.html
  • git命令大全:https://gist.github.com/Erik-ly/d68cc402fade0ef6b960ca8fc5603949
  • 常用 Git 命令清单 - 阮一峰的网络日志:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
  • Git恢复之前版本的两种方法reset、revert(图文详解):https://blog.csdn.net/yxlshk/article/details/79944535
  • git revert 用法 - demoblog - 博客园:https://www.cnblogs.com/0616–ataozhijia/p/3709917.html
  • Git合并特定commits 到另一个分支:https://blog.csdn.net/ybdesire/article/details/42145597

注:本文首发于个人博客网站: http://www.erik-ly.com/

以上是关于Git 常用基本命令的主要内容,如果未能解决你的问题,请参考以下文章

Git常用命令

git常用命令

20 个最常用的 Git 命令,你都会用吗?

20 个最常用的 Git 命令,你都会用吗?

20 个最常用的 Git 命令,你都会用吗?

Git基本操作