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.mfbz.cn/a/572559.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中小型企业网络实战topo

1、设备命名&#xff0c;务必按照规范进行命名规划&#xff1b; 2、子网划分&#xff0c;申请到了公网地址段&#xff0c;201.1.1.0/24&#xff0c;根据公司的实际情况&#xff0c;合理规划拓扑需要的公网地址&#xff0c; 做到合理规划不浪费&#xff1b; 3、子网划分&a…

嵌入式开发学习--进程、线程

什么是进程 进程和程序的区别 概念 程序&#xff1a;编译好的可执行文件&#xff0c;存放在磁盘上的指令和数据的有序集合&#xff08;文件&#xff09;&#xff0c;程序是静态的&#xff0c;没有任何执行的概念。 进程&#xff1a;一个独立的可调度的任务&#xff0c;执行一…

做抖音小店如何选品?这几个技巧,精准“锁定”爆品!

哈喽~我是电商月月 做抖音小店最重要的就是选品&#xff0c;这点大家都知道 一个店铺商品选的好&#xff0c;顾客喜欢&#xff0c;质量完好&#xff0c;销量和售后都不用操心&#xff0c;和达人合作时&#xff0c;爆单的机会也就越高 那这种商品是什么样的&#xff0c;新手开…

基于ssm微信小程序的4S店客户管理系统

采用技术 基于ssm微信小程序的4S店客户管理系统的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringMVCMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 管理员端 管理员登录 管理员首页 用户管理 门店管理 …

RustGUI学习(iced)之小部件(一):如何使用按钮和文本标签部件

前言 本专栏是学习Rust的GUI库iced的合集&#xff0c;将介绍iced涉及的各个小部件分别介绍&#xff0c;最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个&#xff0c;目前处于发展中&#xff08;即版本可能会改变&#xff09;&#xff0c;本专栏基于版本0.12.1. 概述…

高效一键改写文章,智能伪原创工具轻松搞定

在信息爆炸的时代&#xff0c;想要高效率的一键改写文章却是很多创作者都想了解的方法。然而在人工智能技术发展的今天&#xff0c;智能伪原创工具的出现&#xff0c;也正是成了广大创作者用来一键改写文章的好方法&#xff0c;因为它的优势&#xff0c;可以为大家轻松完成改写…

光伏二次设备主要有哪些

光伏电站二次设备类型比较多&#xff0c;信息显示、数据安全、远动通信、电能质量、微机保护等都有不同设备相互配合完成&#xff0c;根据项目具体需求来选择&#xff0c;简单可以分为以下几种&#xff1a; 一、光伏二次设备保护屏&#xff1a; 1、光伏二次设备预制舱 二次设…

短视频矩阵系统源码====3年技术公司源头开发商交付

短视频矩阵系统#源头技术打磨 哈尔滨爆火带动了一波“北上热潮”&#xff0c;各地文旅坐不住了&#xff0c;兄弟们开“卷”&#xff01;这波互卷浪潮中&#xff0c;河南率先出圈。如今&#xff0c;河南文旅账号粉丝已经突破200w&#xff01; 01 矩阵打法&#xff0c;很难不火…

超越边界:如何ChatGPT 3.5、GPT-4、DALL·E 3和Midjourney共同重塑创意产业

KKAI&#xff08;kkai人工智能&#xff09;是一个整合了多种尖端人工智能技术的多功能助手平台&#xff0c;融合了OpenAI开发的ChatGPT3.5、GPT4.0以及DALLE 3&#xff0c;并包括了独立的图像生成AI—Midjourney。以下是这些技术的详细介绍&#xff1a; **ChatGPT3.5**&#xf…

Lab2: system calls

Using gdb Looking at the backtrace output, which function called syscall? 可以看到是trap.c中usertrap函数调用了syscall函数 What is the value of p->trapframe->a7 and what does that value represent? p->trapframe->a7的值为7&#xff0c;代表了函…

MATLAB 条件语句

MATLAB 条件语句 决策结构要求程序员应指定一个或多个要由程序评估或测试的条件&#xff0c;如果确定条件为真&#xff0c;则应指定要执行的一个或多个语句&#xff0c;如果条件为真&#xff0c;则可以选择要执行的其他语句。条件确定为假。 以下是大多数编程语言中常见的典型…

我们支持批量了!

当我们有很多文件要处理时&#xff0c;一个一个操作不仅费时费力&#xff0c;而且还容易漏掉某个文件。那么有没有更加简单的方法呢&#xff1f;可以试试批量功能&#xff01; 目前以下功能都支持批量操作 音频提取 视频格式转换 字幕生成 视频静音 图片格式转换 图片压缩 视频…

JavaScript —— APIs(四)

一、日期对象 1. 实例化 new 括号里面为空&#xff0c;得到当前时刻的时间 括号里面为指定日期&#xff0c;得到对应日期的时间 注意&#xff1a;若括号里面只有年月日&#xff0c;没有时间&#xff0c;则得到的结果就没有时间&#xff1b;括号里面指定时间是多少&#xff0c;…

身份证二要素核验介绍及使用方法

一、身份证二要素核验简介及重要性 身份证二要素核验是一种重要的身份验证技术&#xff0c;它在现代社会中发挥着至关重要的作用&#xff0c;特别是在涉及个人信息安全和隐私保护的领域。通过身份证二要素核验&#xff0c;我们可以有效地确认个人身份的真实性&#xff0c;从而…

爬虫学习笔记-数美验证

测试网址&#xff1a;智能验证码体验_图片验证码_数美科技数美科技智能验证码在线体验&#xff0c;智能识别风险用户级别&#xff0c;自行切换智能验证码难度及类型&#xff0c;提供滑动、拼图、点选、数字、动态等多种智能验证码服务&#xff0c;精准拦截机器行为。https://ww…

SOLIDWORKS Composer如何使用3D工具实现更真实的动画效果

当我们使用SOLIDWORKS composer创建动画时&#xff0c;往往会涉及到产品的安装与拆解&#xff0c;现实生活中我们在拆卸组装产品的时候&#xff0c;我们往往需要一些工具的协助&#xff0c;比如扳手、螺丝刀等等&#xff0c;那么我们如何在虚拟动画中也将这一过程以逼真的形式展…

新建云仓库

1.GitHub新建云仓库&#xff1a; LICENSE:开源许可证&#xff1b;README.md:仓库说明文件&#xff1b;开源项目&#xff1b;cocoaPodsName.podspec: CocoaPods项目的属性描述文件。 2.Coding新建云仓库&#xff1a; 备注&#xff1a; Coding新建项目&#xff1a;

STM32,复位和时钟控制

外部时钟 HSE 以后需要用到什么就这样直接拿去配就行了

左叶子之和(力扣404)

解题思路:用后序遍历找左孩子&#xff0c;需要注意的是左叶子需要通过其父节点来判断其是不是左叶子 具体代码&#xff1a; class Solution { public: int sumOfLeftLeaves(TreeNode * root) { if(rootNULL)return 0; if(root->leftNULL&&root->rightNULL)ret…

纳米尺度下的单粒子追踪,厦门大学方宁团队用 AI 奏响「细胞里的摇滚」

在微观世界里&#xff0c;每一个细胞都是一个繁忙的城市&#xff0c;而分子们则是这个城市中的居民。想象一下&#xff0c;如果我们能够追踪这些居民的每一个动作&#xff0c;或许便能够揭开生命奥秘的一角。这就是科学家们在活细胞中进行 3D 单粒子跟踪 (single particle trac…
最新文章