Git使用说明,持续更新

Git使用说明

git branch

用于管理分支,包括查看、创建、删除、重命名分支等操作。

  1. git branch: 列出本地仓库中的所有分支,并标识当前所在的分支。
  2. git branch <branch-name>: 创建一个新分支,名称为 <branch-name>
  3. git branch -d <branch-name>: 删除名为 <branch-name> 的本地分支。需要注意,删除分支前需要确保分支中的工作已经合并到其他分支中,否则会丢失提交历史。
  4. git branch -m <old-branch-name> <new-branch-name>: 将名为 <old-branch-name> 的分支重命名为 <new-branch-name>
  5. git branch -a: 列出本地仓库中的所有分支,包括远程仓库中的分支。
  6. git branch -vv: 显示本地分支的详细信息,包括每个分支的最新提交信息以及与远程分支的关联情况。
  7. git branch --merged: 列出已合并到当前分支的分支。
  8. git branch --no-merged: 列出尚未合并到当前分支的分支。

git status

git status 是一个非常常用的 Git 命令,用于查看当前工作目录的状态。以下是一些常用的 git status 方法:

  • 已修改(modified)的文件:即工作区中已经修改但尚未添加到暂存区的文件。
  • 已暂存(staged)的文件:即已经添加到暂存区但尚未提交到版本库的文件。
  • 未跟踪(untracked)的文件:即工作区中尚未添加到 Git 的文件。
  1. git status: 显示当前工作目录的状态,包括已修改(但尚未暂存)、已暂存(但尚未提交)、未跟踪文件等信息。
  2. git status -sgit status --short: 显示简短的状态信息,只显示已修改、已暂存和未跟踪文件的摘要,以减少输出量。
  3. git status -bgit status --branch: 显示当前所在分支的状态,并提示是否有待提交的变更。这个选项还会显示当前分支的跟踪情况。
  4. git status -unogit status --untracked-files=no: 不显示未跟踪文件的状态信息。

git remote

git remote 命令用于管理远程仓库,包括查看、添加、删除、重命名远程仓库等操作。以下是 git remote 命令的一些常用方法:

  1. git remote: 列出所有远程仓库的名称。
  2. git remote -v: 显示所有远程仓库的名称和对应的 URL。
  3. git remote add <remote-name> <url>: 添加一个新的远程仓库,指定名称为 <remote-name>,URL 为 <url>
  4. git remote remove <remote-name>: 移除指定名称的远程仓库。
  5. git remote rename <old-name> <new-name>: 将远程仓库的名称从 <old-name> 重命名为 <new-name>
  6. git remote show <remote-name>: 显示指定远程仓库的详细信息,包括远程分支和本地分支的跟踪情况。

git reset

git reset 命令用于撤销提交,可以将当前分支的 HEAD 移动到指定的提交,也可以取消已暂存的文件或取消已提交但尚未推送到远程仓库的提交。以下是一些常用的 git reset 方法:

  1. git reset <commit>:将 HEAD 移动到指定的提交,但保留当前工作目录的状态,将之前的提交视为未暂存状态。这种形式的 reset 称为软重置(soft reset)。
  2. git reset --hard <commit>:将 HEAD 移动到指定的提交,并且重置暂存区和工作目录,丢弃之前的提交和修改。这种形式的 reset 称为硬重置(hard reset)。
  3. git reset HEAD <file>:取消对指定文件的暂存,将文件从暂存区中移除,但保留工作目录中的修改。
  4. git reset --mixed <commit>:这是 git reset 的默认行为。它将 HEAD 移动到指定的提交,同时保留工作目录中的修改,但将这些修改标记为未暂存状态。这种形式的 reset 称为混合重置(mixed reset)。
  5. git reset --hard HEAD:取消当前分支的所有修改,并将 HEAD 指向最新的提交。这可以用来撤销所有的本地变更,并回到最近的提交状态。
  6. git reset --soft HEAD^:将 HEAD 移动到前一个提交,但保留当前修改和暂存状态,使得你可以重新提交之前的变更。

git add

git add 命令用于将文件或目录添加到暂存区,以准备将其包含在下一次提交中。以下是一些常用的 git add 方法:

  1. git add <file>: 将指定的文件添加到暂存区。可以使用相对路径或绝对路径指定文件。
  2. git add .git add --all: 将当前目录下的所有修改过的文件和未跟踪的文件添加到暂存区。
  3. git add -ugit add --update: 将已跟踪的文件的修改添加到暂存区,但不包括未跟踪的文件。
  4. git add -pgit add --patch: 交互式地添加文件到暂存区,可以逐个确认要添加的修改。这个选项可以用来部分地暂存文件的部分修改。
  5. git add -igit add --interactive: 进入交互式模式,可以按需选择要添加到暂存区的文件。

git commit

git commit 命令用于将暂存区的文件提交到本地仓库中。以下是一些常用的 git commit 方法:

  1. git commit -m "<commit-message>":提交暂存区中的文件,并附带一条提交消息,消息内容由 <commit-message> 指定。这种方式适用于简单的提交,提交消息不需要跨越多行。
  2. git commit -agit commit --all:提交暂存区中的所有修改过的文件,跳过使用 git add 命令暂存文件的步骤。这个选项不会提交未跟踪的文件。
  3. git commit --amend:修改上一次提交的内容。执行该命令后,会打开编辑器,允许你修改上一次提交的提交消息、添加缺失的文件或修改已暂存的文件。
  4. git commit -m "<new-commit-message>" --amend:修改上一次提交的提交消息,并保持提交内容不变。
  5. git commit -vgit commit --verbose:提交文件时显示每个修改的差异,以便更容易理解提交的内容。
  6. git commit --no-verify:跳过提交时的钩子检查。有时候你可能需要暂时禁用钩子来提交一些临时性的修改。

git push

git push 命令用于将本地仓库中的提交推送到远程仓库中。以下是一些常用的 git push 方法:

  1. git push <remote-name> <branch-name>: 将本地分支的提交推送到指定远程仓库的指定分支。例如,git push origin main 将本地的 main 分支推送到远程仓库 origin 上的 main 分支。
  2. git push -u <remote-name> <branch-name>: 将本地分支的提交推送到指定远程仓库的指定分支,并将本地分支与远程分支关联起来。使用 -u 参数可以设置远程分支为默认的上游分支,之后的 git pullgit push 命令将自动使用该分支。
  3. git push --all <remote-name>: 将本地所有分支的提交推送到指定远程仓库。
  4. git push --force <remote-name> <branch-name>: 强制推送本地分支的提交到远程分支,即使远程仓库中的分支已经有了新的提交。注意:强制推送可能会导致远程仓库的提交丢失,慎用该命令。
  5. git push --tags <remote-name>: 将本地所有的标签推送到指定远程仓库。
  6. git push origin --delete <branch-name>: 删除远程仓库上的指定分支。这将从远程仓库中移除指定分支的所有提交。

git merge

git merge 命令是 Git 中用于合并分支的主要工具之一。下面是一些 git merge 命令的常用方法:

  1. 合并指定分支到当前分支

    git merge <branch-name>
    

这个命令将 <branch-name> 分支上的修改合并到当前分支上。

  1. 普通合并(Non-Fast-Forward Merge)

    git merge --no-ff <branch-name>
    

使用 --no-ff 选项执行普通合并,即创建一个新的合并提交,而不是使用快进合并。这样可以保留分支的提交历史。

  1. 合并后压缩为一个提交(Squash Merge)

    git merge --squash <branch-name>
    

使用 --squash 选项将要合并的提交压缩成一个单独的提交,而不是直接合并提交历史。这个方法通常用于创建清晰的、整洁的提交历史。

  1. 合并冲突的解决: 在执行合并操作时,如果遇到冲突,Git 会提示你手动解决冲突。解决完冲突后,需要执行 git add 将解决后的文件标记为已解决,然后执行 git commit 完成合并提交。

  2. 合并特定提交

    git merge <commit-id>
    

你也可以合并特定的提交,而不是合并整个分支。这个方法通常用于处理特定的提交或补丁。

git rebase

git rebase 命令用于重新设置分支的基础,常用于将一条分支的修改应用到另一条分支上,或者重排提交历史。以下是一些 git rebase 命令的常用方法:

  1. 将当前分支的修改应用到目标分支上

    git rebase <target-branch>
    

这个命令将当前分支的提交应用到 <target-branch> 分支上,并将当前分支的基础设置为 <target-branch> 分支的最新提交。这种方法通常用于将一个分支的修改应用到另一个分支上,并保持提交历史的线性。

  1. 交互式重新设置提交历史

    git rebase -i <commit-id>
    

使用 -i 选项可以进入交互式 rebase 模式,允许你对提交历史进行交互式的重新设置。在交互式模式中,你可以合并、编辑、删除提交,甚至重新排列提交顺序。

  1. 将当前分支的修改应用到目标分支上并保留合并提交

    git rebase --preserve-merges <target-branch>
    

使用 --preserve-merges 选项可以保留分支合并的信息,即保留合并提交。这在需要保留分支合并信息的情况下非常有用。

  1. 中止 rebase 操作

    git rebase --abort
    

如果在 rebase 过程中出现问题,你可以使用 --abort 选项中止 rebase 操作,并恢复到 rebase 开始之前的状态。

  1. 继续 rebase 操作

    git rebase --continue
    

如果在解决冲突后需要继续 rebase 操作,你可以使用 --continue 选项继续进行 rebase。

git pull

git pull 命令用于从远程仓库拉取更新,并将其合并到本地分支。以下是一些常用的 git pull 方法:

  1. 从远程仓库拉取更新到当前分支

    git pull
    

这个命令会从与当前分支关联的远程仓库中拉取更新,并将其合并到当前分支。

  1. 指定远程仓库和分支

    git pull <remote-name> <branch-name>
    

这个命令会从指定的 <remote-name> 远程仓库的 <branch-name> 分支中拉取更新,并将其合并到当前分支。

  1. 拉取更新并重新应用本地修改

    git pull --rebase
    

使用 --rebase 选项可以在拉取更新后,重新应用本地提交而不是直接进行合并。这有助于保持提交历史的线性。

  1. 拉取更新但不自动合并

    git pull --no-commit
    

使用 --no-commit 选项可以在拉取更新后,不进行自动合并,而是保留更新的修改以便进行进一步处理。

  1. 拉取更新并强制合并

    git pull --force
    

使用 --force 选项可以在拉取更新后,强制进行合并。这在需要覆盖本地修改的情况下可能会有用,但需要小心使用以避免丢失本地修改。

git checkout

git checkout 是 Git 中一个非常常用的命令,用于切换分支、恢复文件、创建新分支等操作。以下是一些常见的用法:

  1. 切换分支:最常见的用法就是切换到已存在的分支。

    git checkout branch_name
    
  2. 创建并切换到新分支:如果分支不存在,可以用 git checkout -b 创建并立即切换到新分支。

    git checkout -b new_branch_name
    
  3. 恢复文件:将工作区中的文件恢复到最近一次提交的状态。

    git checkout -- file_name
    
  4. 切换到某个特定的提交:可以使用提交的哈希值或标签名进行切换。

    git checkout tag_name
    
  5. 切换到上一个分支:如果需要在两个分支之间频繁切换,可以使用 - 标记来返回上一个分支。

    git checkout -
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/3209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言指针进阶:各类型指针变量详解

目录 1. 字符指针变量2. 数组指针变量2.1 什么是数组指针变量2.2 数组指针变量的初始化 3. 二维数组传参的本质4. 函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使用4.3 代码分析4.3.1 typedef 关键字 5. 函数指针数组6. 转移表 正文开始。 1. 字符指针变量 我们可以…

【WP】猿人学12_入门级js

https://match.yuanrenxue.cn/match/12 Fiddler分析发现&#xff0c;所有请求只是 page已经 m不一样 这个m看起来就很像 base64&#xff0c;解码发现确实如此 下面直接构建Python代码&#xff1a; import base64import requestsdef base64_encode_string(input_string):try:#…

搞嵌入式到底属于程序员吗?

搞嵌入式到底属不属于程序员呢&#xff1f;毫无疑问&#xff0c;当然算啊&#xff01;而且我十分赞同另一位朋友所说的&#xff1a;嵌入式程序员是难得的全栈型程序员。尽管嵌入式领域方向众多且繁杂&#xff0c;但他们同样也是会写代码的程序员。 嵌入式行业主要分为硬件和软…

input 只能输入正数并且只能保留3位小数且开头不能为0,并且表单多字段使用

checker.js export default {isNumber : function (checkVal){var reg /^-?[1-9][0-9]?.?[0-9]*$/;return reg.test(checkVal);},/*** description 小数点前后位数限制* “当前输入的值”、“小数点前限制的位数”、“小数点后限制的位数”*/limitByPoint: function(val, l…

LeetCode-219. 存在重复元素 II

题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&…

【写一个简单的service and client(C++)例子——services】

文章目录 1、概要2、引言3、服务开始的地方及步骤3.1 创建工作空间3.2 创建功能包3.3 更新package.xml3.4 编写service 节点3.4.1 添加可执行文件3.4.2 添加 install&#xff08;TARGETS…&#xff09; 部分 3.5 编写client 节点3.5.1 添加可执行文件 3.6 编译运行3.7 运行结果…

高端制造企业生产设备文件管理,怎样保证好用不丢失文件?

高端制造业在市场经济中占据重要角色&#xff0c;在高端制造业企业内部&#xff0c;生产设备又是最关键的一环环&#xff0c;它们不仅负责完成生产任务&#xff0c;同时也会产生大量的文件。这些数据反映了设备的运行状态、生产效率、能源消耗以及产品质量等多个方面&#xff0…

网络协议安全:OSI七层模型分层及作用,数据封装与解封过程,数据传输过程。

「作者简介」&#xff1a;2022年北京冬奥会中国代表队&#xff0c;CSDN Top100&#xff0c;学习更多干货&#xff0c;请关注专栏《网络安全自学教程》 这一章节我们需要知道OSI分哪七层&#xff0c;每层的作用&#xff0c;知道数据在七层模型中是怎样传输的&#xff0c;封包和解…

C/C++ 入门(7)vector类(STL)

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;C 请多多指教&#xff01; 目录 一、标准库中的vector 1、了解 2、vector常用接口 二、vector的实现 1、框架 2、构造、析构函数 3、操作函数 三 、问题 1、由于赋值而引起的浅拷贝 2、因为类没…

岭回归(概念+实例)

目录 前言 一、基本概念 1. 引言 2. 岭回归的原理 3. 数学表达式 4. 岭回归的优点 5. 岭回归的局限性 6. 实际应用 二、具体实例 前言 “岭回归”这个词源于英文“Ridge Regression”&#xff0c;是一种用于处理回归分析中多重共线性&#xff08;multicollinearity&am…

Linux-软件安装--jdk安装

jdk安装 前言1、软件安装方式二进制发布包安装rpm安装yum安装源码编译安装 2、安装jdk2.1、使用finalShell自带的上传工具将jdk的二进制发布包上传到Linux2.2、解压安装包2.3、配置环境变量![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/61ba9750e2e34638a39575c5…

电脑自带dll修复在哪里打开?教你如何快速修复dll丢失问题

MSVCP140.dll文件作为Windows操作系统中不可或缺的一环&#xff0c;对众多基于C编译的应用程序的正常运行起着关键作用。在我深入研究和处理与该文件相关问题的过程中&#xff0c;积累了丰富的认知和实践经验。以下是我对MSVCP140.dll文件的总体介绍以及针对其丢失问题的解决方…

C++ 验证一下,你对递归是不是一知半解

公众号:编程驿站 公众号:编程驿站 1. 前言 无递归,不算法。无论怎样强调递归的重要性,都不为过。受限于计算机的思维能力,计算机的计算找答案的过程就是在不停试错、纠正错误的过程,类似于爱迪生发明灯炮。递归能帮助我们在不知道计算边界的情形下试错。 多函数求解过…

echarts树图-实现拓扑图效果

使用echarts树图来实现拓扑图效果&#xff0c;其效果如下&#xff1a; 代码如下&#xff1a; const data {name: XXX公司,children: [{name: 网络主机,children: [{name: 普通路由器,children: [{name: 智能网关},{name: 192.168.1.0/24}]}]},{name: 企业路由器},{name: 三…

MySQL-----多表查询(一)

目录 一.多表关系&#xff1a; 1.1 一对多(多对一)&#xff1a; 1.2 多对多: 1.3 一对一: 二.多表查询概述&#xff1a; 三.连接查询&#xff1a; 3.1内连接&#xff1a; 3.2外连接&#xff1a; 3.3自连接查询&#xff1a; 3.4联合查询&#xff1a; 一.多表关系&…

Vast+产品展厅 | Vastbase G100数据库是什么架构?(1)

Vastbase G100是海量数据融合了多年对各行业应用场景的深入理解&#xff0c;基于openGauss内核开发的企业级关系型数据库。 了解Vastbase G100的架构&#xff0c;可以帮助您确保数据库系统的高效、可靠和安全运行。 “Vast产品展厅”将分两期&#xff0c;为您详细讲解Vastbas…

Python语法糖大全

本文汇集了一些常用的Python语法糖&#xff0c;供大家查询使用。 1. 集合与序列操作 列表推导式&#xff1a;创建列表。[x**2 for x in range(10)]字典推导式&#xff1a;创建字典。{x: x**2 for x in range(10)}集合推导式&#xff1a;创建集合。{x**2 for x in range(10)}条…

C++(爬楼梯

我一开始&#xff0c;写了一个代码 class Solution { public:int climbStairs(int n) {vector<int> dp(n1);dp[1]1;dp[2]2;if(n1){return 1;}else if(n2){return 2;}else{for(int i3;i<n;i){dp[i]dp[i-1]dp[i-2];}return dp[n];}} }; 一直报错&#xff0c;找了半天终…

划分数据集2,详细说明

看完了这个之后划分数据集&#xff0c;训练自己的数据集。-CSDN博客 我再详细说一下自己标注的文件放在什么位置 我发的文件里有这几个文件 在dataset里面有 自己的数据集分为&#xff0c;图片部分和标注文件部分 打开VOCdevkit文件夹 里面有三个文件夹 自己的图片的话&…

商城数据库88张表结构完整示意图

36 CREATE TABLE operates (operateId int(11) NOT NULL AUTO_INCREMENT COMMENT 自增ID,staffId int(11) NOT NULL DEFAULT 0 COMMENT 职员ID,operateTime datetime NOT NULL COMMENT 操作时间,menuId int(11) NOT NULL COMMENT 所属菜单ID,operateDesc varchar(255) NOT NUL…