当前位置: 首页 > article >正文

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

目录

  • 概述
  • 基础命令
  • 提交代码
    • 把代码提交到暂存区
    • 把代码提交到版本库
    • 同一笔提交想追加修改
  • 回退代码
    • 对代码进行了修改,想回退工作区的修改
    • 执行了add操作,想回退到工作区
    • 执行了commit操作,想撤销修改
    • 执行了commit操作,想回退到暂存区
  • 挑代码
  • 后记

概述

在实际的开发工作中,使用版本控制工具进行协作开发是不可避免的,而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常见的命令。


http://www.kler.cn/a/8189.html

相关文章:

  • Retrofit源码分析:动态代理获取Api接口实例,解析注解生成request,线程切换
  • FPGA(一)verilog语句基础
  • Latex+VsCode+Win10搭建
  • MFC/C++学习系列之简单记录9——简单加法
  • HTTP、HTTPS和SOCKS5代理協議
  • 法学硕士,有哪些专业可以申请呢?
  • 编程的核心目的:计算数据
  • 二、Java 并发编程(1)
  • 20230404英语学习
  • Javase学习文档------数组
  • 使用spring boot拦截器实现青少年模式
  • Nuxt项目动态路由带参接参
  • 【从零开始学习 UVM】12.3、UVM RAL(续更) —— RAL Classes Methods
  • java微服务商城高并发秒杀项目--008.订单服务继承Sentinel以及sentinel安装dashboard
  • SMPL Model转换为bvh格式 (SMPL to BVH ) Python
  • 说说如何借助webpack来优化前端性能?
  • 2023年第十四届蓝桥杯将至,来看看第十三届蓝桥杯javaB组题目如何
  • leetcode459. 重复的子字符串
  • 【学习笔记】启示录 - 打造用户喜爱的产品(阅读摘录)
  • C++ 98/03 应该学习哪些知识19
  • python 实现二叉搜索树的方法有哪些?
  • Unity中将项目通用的公共模块封装成类库dll
  • 如何让chatGPT变成中文-ChatGPT怎么完整输出
  • Spark 之 解析json的复杂和嵌套数据结构
  • 身临其境数字世界:探索VR全景元宇宙展厅
  • 前端学习:HTML链接