版本控制工具Git的常见命令与使用方法

概述

在实际的开发工作中,使用版本控制工具进行协作开发是不可避免的,而Git更是最常见的版本控制工具之一。虽然现在许多公司都会有自己的版本控制工具,但是大部分都是基于Git进行一些客制化操作,Git的命令还是都适用的。Git仓库的初始化可以参考这篇文章:Android Studio使用Git以及连接到远程库(GitHub),本文主要记录一些开发过程中常用的Git命令。

基础命令

  1. 创建分支
    git branch <branch-name>: 创建分支
    git checkout <branch-name>: 切换分支
    git checkout -b <branch-name>: 创建并切换分支
    例如直接在Android Studio的Terminal窗口中新建并切换分支:
    新建分支
  2. 查看状态
    git status:可以查看当前仓库的状态
    git status
  3. 查看最近一次提交信息
    git show:可以查看最近一次提交的详细信息,包括提交者、提交信息、提交日期、文件差异等。
    git show
  4. 查看代码对应的提交
    在AndroidStudio中,点击右键并选择Annotate with Git Blame即可查看每行代码对应的提交:
    git blame
    AS查看提交信息
  5. 获取某笔提交对应的哈希值
    每笔提交都会有自己唯一的哈希值,这也是之后进行回退代码时的依据。哈希值的查看方式如下:
    在第4点提及的窗口中,点击右键,即可查看提交对应的哈希值:
    查看哈希值
  6. 删除分支
    git branch -D <branch-name>:删除对应分支。

提交代码

Git可以分为工作区、暂存区和版本库,简单来讲就是修改后还未进行任何Git操作的代码处于工作区,执行add命令后的代码修改处于暂存区,执行commit命令后的代码则处于版本库中。提交代码过程中常见的命令如下:

把代码提交到暂存区

git add .:将所有修改了但是未提交的代码及文件提交到暂存区;
git add *:将所有修改了但是未提交的代码及文件提交到暂存区;
git add .git add *的区别:git add .会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤;git add *会提示已被忽略的内容,但不会直接加入。
git add <file-name>:将指定文件添加到暂存区中。日常开发中一般使用这个命令。
git add

把代码提交到版本库

git commit -m <commit message>:将暂存区的代码修改提交到版本库中,其中提交信息为commit message的内容。
git commit:许多公司都会有自己的commit message模板,这种情况下可以自己新建一个template文件并放到指定目录下,执行git commit后会自动加载该模板。修改完后再进行提交就行。需要注意的是如果commit message中涉及换行,最好用git bash,不要用Android Studio自带的Terminal窗口。
git commit -m

同一笔提交想追加修改

git commit --amend:这个命令适用于对最近一笔提交追加修改。需要注意的是,代码上的修改以及commit message上的修改都能使用这个命令进行追加。

回退代码

对代码进行了修改,想回退工作区的修改

git restore <file-name>:这个命令适用于对代码进行了修改,但还未提交到暂存区中的文件。使用这个命令可以将对应文件的修改回退到最近一次commit。
git restore

执行了add操作,想回退到工作区

git restore --staged <file-name>:这个命令可以将提交到暂存区中的代码和文件回退到工作区中。
git restore --staged

执行了commit操作,想撤销修改

git reset --hard HEAD^:这个命令用于回退最近的一笔提交,其中,一个^表示一笔提交,即git reset --hard HEAD^^是回退最近的两笔提交,git reset --hard HEAD^^^是回退最近的三笔提交。
git reset --hard <revision number>:将分支上的代码回退到截止至这笔提交。通常用于需要批量回退的操作。
git revert <revision number>revert命令也可以用于将代码回退到对应提交中。需要注意的是,revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。
需要注意,Android Studio自带的Terminal窗口无法识别^符号,涉及这个符号的命令最好在git bash中执行。

执行了commit操作,想回退到暂存区

git reset --soft HEAD^:还有一种场景是我们已经提交了代码,想将回退代码进行修改后再重新提交,但是又不想从头修改。除了使用git commit --amend外,还可以使用git reset --soft HEAD^命令将最近一笔提交由版本库中回退到暂存区中。
git reset --soft

挑代码

git cherry-pick <revision number>:首先切换至目标分支,然后cherry-pick某分支上的特定提交到目标分支上。如果存在代码冲突Git也会进行提示,需要手动解冲突后再进行cherry-pick。

后记

之后会持续更新常用命令,也欢迎大家一起扩充Git常见的命令。

猜你喜欢

转载自blog.csdn.net/weixin_46269688/article/details/129967537