git快速入门!!! git的常用命令!!!

git快速入门

    • git的常用命令
      • 1. 初始化一个新的 Git 仓库
      • 2. 添加文件到暂存区
      • 3. 提交更改
      • 4. 查看当前分支的状态
      • 5. 创建并切换到新的分支
      • 6. 切换回之前的分支
      • 7. 合并分支
      • 8. 拉取远程仓库的更新
      • 9. 推送本地仓库的更新
    • git remote -v是什么
    • git fetch
    • clone命令详解
    • push指定的分支
    • git 如何恢复文件?


git的常用命令

Git 是一个开源的分布式版本控制系统,有很多实用的命令可以帮助我们更高效地管理项目和代码。以下是一些常用的 Git 命令及其使用方法和示例:

1. 初始化一个新的 Git 仓库

git init

这个命令会在当前目录下创建一个新的 Git 仓库。

2. 添加文件到暂存区

git add <file>

这个命令会把指定的文件添加到 Git 的暂存区,准备进行提交。

3. 提交更改

git commit -m "<message>"

这个命令会把暂存区的所有内容提交到本地仓库,并附带一条消息说明本次提交的内容。

4. 查看当前分支的状态

git status

这个命令会显示出当前分支上所有未被跟踪、已修改或已暂存的文件。

5. 创建并切换到新的分支

git checkout -b <new_branch>

这个命令会创建一个新的分支,并立即切换到该分支。

6. 切换回之前的分支

git checkout <branch>

这个命令会切换到指定的分支。

7. 合并分支

git merge <branch>

这个命令会把指定的分支合并到当前分支。

8. 拉取远程仓库的更新

git pull origin <branch>

这个命令会从远程仓库拉取最新的代码,并与本地分支进行合并。

9. 推送本地仓库的更新

git push origin <branch>

git remote -v是什么

git remote -v 是 Git 中的一个命令,用于查看 Git 项目的远程仓库的详细信息。它会显示远程仓库的名称、URL 和 fetch/push 方向等信息。
例如,假设你在名为 my_project 的 Git 项目中,已经设置了两个远程仓库 originupstream,你可以使用 git remote -v 命令来查看这两个远程仓库的具体信息:

$ git remote -v
origin  https://github.com/my_user/my_project.git (fetch)
origin  https://github.com/my_user/my_project.git (push)
upstream        https://github.com/original_author/my_project.git (fetch)
upstream        https://github.com/original_author/my_project.git (push)

git fetch

git fetch 是 Git 中的一个命令,用于从远程仓库下载代码库。它从一个或多个仓库获取分支和标签,并将它们保存在本地仓库中。这样,即使网络出现问题,你也可以继续在本地进行开发工作,而不用担心丢失任何数据。
当执行 git fetch 命令时,它会执行以下操作:

  • 检查远程仓库是否有新的提交或分支。
  • 获取远程仓库的最新提交历史,但不会应用到当前工作目录中。
  • 更新本地仓库的远程分支指针,指向远程仓库的最新提交。

需要注意的是git fetch 只是从远程仓库下载了新的提交和分支,但它并没有把这些新的提交和分支合并到当前工作目录中。如果你想把这些新内容合并到当前工作目录中,你需要再运行一次 git merge 或者 git rebase 命令。
因此,git fetch 命令通常用于定期更新本地仓库中的远程分支,以便你可以随时获取最新的代码。如果你想要合并远程仓库中的新提交到当前工作目录中,你应该先运行 git fetch,然后根据实际情况选择合适的合并方式。

clone命令详解

git clone是 Git 中的一个命令,用于克隆现有 Git 仓库到本地计算机。它会复制一份完整的 Git 仓库(包括所有的文件、提交记录、分支等)到本地计算机,以便你在本地计算机上对它进行编辑、提交等操作。
当你执行 git clone 命令时,它会执行以下操作:

  1. 在本地计算机上创建一个新的空目录。
  2. 将指定的 Git 仓库中的所有内容复制到这个新目录中。
  3. 在新目录中初始化一个新的 Git 仓库。
  4. 将新目录作为工作目录打开。

以下是一个使用 git clone 克隆远程 Git 仓库的例子:

$ git clone https://github.com/my_user/my_project.git
Cloning into 'my_project'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (¾/7), done.
remote: Total 10 (delta 5), reused 10 (delta 5), pack-reused 0
Unpacking objects: 100% (10/10), done.
Checking connectivity... done.

在这个例子中,我们使用 git clone 命令从 GitHub 上的 my_user/my_project 仓库克隆了一份完整的 Git 仓库到本地计算机上的 my_project 目录中。
需要注意的是,当你执行 git clone 命令时,默认情况下,Git 会自动创建一个新的分支,并将其命名为 master。这个分支是基于远程仓库中的默认分支(通常是 master 分支)创建的。如果你想克隆其他分支,可以在 git clone 命令后加上 -b 参数,并指定要克隆的分支名称,如下所示:

$ git clone -b my_feature https://github.com/my_user/my_project.git

在这个例子中,我们将克隆远程仓库中的 my_feature 分支,而不是默认的 master 分支。

push指定的分支

git push是 Git 中的一个命令,用于将本地仓库中的更改推送到远程仓库。默认情况下,git push 命令会推送当前分支的所有更改到远程仓库中对应的分支。
但是,如果你想推送特定的分支,你可以使用 -u-f 参数,指定要推送的分支。以下是一些示例:

  • 使用 -u 参数推送分支:
$ git push -u origin my_branch

在这个例子中,我们将本地仓库中的 my_branch 分支推送到远程仓库的 origin 中对应的分支。如果远程仓库中没有 my_branch 分支,那么 Git 会自动创建一个新的分支,并将其命名为 my_branch

  • 使用 -f 参数强制推送分支:
$ git push -f origin my_branch

在这个例子中,我们将本地仓库中的 my_branch 分支强制推送到远程仓库的 origin 中对应的分支。如果远程仓库中已经有 my_branch 分支,那么 Git 会直接覆盖掉原来的分支。注意,强制推送可能会导致数据丢失,所以在使用之前一定要慎重考虑。
总之,如果你想推送特定的分支,可以使用 -u-f 参数,指定要推送的分支。根据实际情况选择合适的方式,以确保数据的安全性和完整性。

git 如何恢复文件?

如果在 Git 中误删了文件,可以从本地仓库中恢复这些文件。以下是几种恢复已删除文件的方法:

  1. 使用 git checkout 命令恢复已删除的文件。

重要提示: 请务必确保在使用此命令前已进行了 git add 操作,否则无法恢复文件。

$ git checkout -- <file>

在这个例子中,<file> 表示要恢复的文件名。
这个命令会将工作树中的指定文件恢复到最近一次提交的状态。如果你想恢复到指定的提交状态,请使用以下格式:

$ git checkout <commit> -- <file>

在这个例子中,<commit> 表示要恢复到的提交哈希值。

  1. 使用 git reset 命令恢复已删除的文件。
$ git reset HEAD <file>

这个命令会撤销工作树中的指定文件,使其回到最近一次提交的状态。如果你想恢复到指定的提交状态,请使用以下格式:

$ git reset <commit> <file>

在这个例子中,<commit> 表示要恢复到的提交哈希值。

  1. 使用 git reflog 命令查找最近删除的文件。
$ git reflog

这个命令会列出所有 Git 操作的历史记录,包括最近删除的文件。你可以从输出结果中找到需要恢复的文件的提交哈希值,然后按照上面的格式恢复文件。
注意:只有文件已被 git add 添加到暂存区,才能通过上述方法恢复文件。如果没有将文件添加到暂存区,则需要先执行 git fsckgit diff 命令,找出文件的原始版本,然后再使用 git checkoutgit reset 命令恢复文件。

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

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

相关文章

SpringCloudAlibaba - 项目完整搭建(Nacos + OpenFeign + Getway + Sentinel)

目录 一、SpringCloudAlibaba 项目完整搭建 1.1、初始化项目 1.1.1、创建工程 1.1.2、配置父工程的 pom.xml 1.1.3、创建子模块 1.2、user 微服务 1.2.1、配置 pom.xml 1.2.2、创建 application.yml 配置文件 1.2.3、创建启动类 1.2.4、测试 1.3、product 微服务 1…

如何使用CodeceptJS、Playwright和GitHub Actions构建端到端测试流水线

介绍 端到端测试是软件开发的一个重要方面&#xff0c;因为它确保系统的所有组件都能正确运行。CodeceptJS是一个高效且强大的端到端自动化框架&#xff0c;与Playwright 结合使用时&#xff0c;它成为自动化Web、移动甚至桌面 (Electron.js) 应用程序比较好用的工具。 在本文中…

代码随想录算法训练营第23期day38|动态规划理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

目录 一、动态规划理论基础 1.动态规划的解题步骤 2.动态规划应该如何debug 二、&#xff08;leetcode 509&#xff09;斐波那契数 1.递归解法 2.动态规划 1&#xff09;确定dp数组以及下标的含义 2&#xff09;确定递推公式 3&#xff09;dp数组如何初始化 4&#x…

C++虚表与虚表指针详解

类的虚表 每个包含了虚函数的类都包含一个虚表。 当一个类&#xff08;B&#xff09;继承另一个类&#xff08;A&#xff09;时&#xff0c;类B会继承类A的函数的调用权。所以如果一个基类包含了虚函数&#xff0c;那么其继承类也可调用这些虚函数&#xff0c;换句话说&…

基于ASP.NET MVC + Bootstrap的仓库管理系统

基于ASP.NET MVC Bootstrap的仓库管理系统。源码亲测可用&#xff0c;含有简单的说明文档。 适合单仓库&#xff0c;基本的仓库入库管理&#xff0c;出库管理&#xff0c;盘点&#xff0c;报损&#xff0c;移库&#xff0c;库位等管理&#xff0c;有着可视化图表。 系统采用Bo…

MySQL导入数据库报错Error Code: 2006

Error Code: 2006 - MySQL server has gone away 因为导入的某张表数据过大导致导入中途失败 , 修改max_allowed_packet 即可解决。 SET GLOBAL max_allowed_packet 1024*1024*200;

Asp.Net Core服务端处理请求过来的压缩格式

之前是直接传没有经过压缩的文件字节&#xff0c;有时文件过大的话&#xff0c;可能占宽带就多&#xff0c;宽带流量都是钱。后来有个想法&#xff0c;在客户端把文件进行压缩&#xff0c;把压缩的文件流发给服务端进行解压。 1&#xff0c;先修改项目中Startup.cs文件中Confi…

【数据结构】数组和字符串(十五):字符串匹配2:KMP算法(Knuth-Morris-Pratt)

文章目录 4.3 字符串4.3.1 字符串的定义与存储4.3.2 字符串的基本操作4.3.3 模式匹配算法0. 朴素模式匹配算法1. ADL语言2. KMP算法分析3. 手动求失败函数定义例1例2例3 4. 自动求失败函数&#xff08;C语言&#xff09;5. KMP算法&#xff08;C语言&#xff09;6. 失败函数答案…

STM32F103C8T6第二天:按键点灯轮询法和中断法、RCC、电动车报警器(振动传感器、继电器、喇叭、433M无线接收发射模块)

1. 点亮LED灯详解&#xff08;307.11&#xff09; 标号一样的导线在物理上是连接在一起的。 将 PB8 或 PB9 拉低&#xff0c;就可以实现将对应的 LED 灯点亮。常用的GPIO HAL库函数&#xff1a; void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);//I/…

产品经理入门学习(二):产品经理问题思考维度

参考引用 黑马-产品经理入门基础课程 1. 抓住核心用户 1.1 为什么要抓住核心用户 什么是用户&#xff1f; 所有和产品有关系的群体就是用户&#xff0c;他们是一群既有共性&#xff0c;又有差异的群体组合 做产品为什么要了解用户&#xff1f; 了解用户的付费点、更好的优化产…

linux下构建rocketmq-dashboard多架构镜像——筑梦之路

接上篇&#xff1a;linux上构建任意版本的rocketmq多架构x86 arm镜像——筑梦之路-CSDN博客 这里来记录下构建rocketmq-dashboard多架构镜像的方法步骤。 当前rocketmq-dashboard只有一个版本&#xff0c;源码地址如下&#xff1a; https://dist.apache.org/repos/dist/rele…

uniapp页面间传参的方法

在uniapp中&#xff0c;常见的页面传参方式有以下几种&#xff1a; URL传参 可以在跳转页面时&#xff0c;在url中添加参数&#xff0c;通过在目标页面的onLoad函数中的options参数获取传递的参数。示例代码如下&#xff1a; 在源页面中&#xff1a; uni.navigateTo({url: …

从零实现的浏览器Web脚本

从零实现的浏览器Web脚本 在之前我们介绍了从零实现Chrome扩展&#xff0c;而实际上浏览器级别的扩展整体架构非常复杂&#xff0c;尽管当前有统一规范但不同浏览器的具体实现不尽相同&#xff0c;并且成为开发者并上架Chrome应用商店需要支付5$的注册费&#xff0c;如果我们只…

【软考中级】软件设计师-下午题

下午题 试题一 黑洞&#xff1a;加工有输入无输出 白洞(奇迹)&#xff1a;加工有输出无输入 灰洞&#xff1a;数据流输入的加工不足以产生输出 结构化语言&#xff1a; IF *** THEN ELSE IF *** THEN ******* END IF END IF 数据流的父子图平衡&#xff0c;如果父子图平衡就不…

Mybatis 概述

一、Mybatis 概述 1.Mybatis是什么&#xff1f; MyBatis 是一款优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息&#xff0…

Python虚拟环境相关

写深度学习代码前&#xff0c;总要把Github上许多开源代码下下来跑一下。不同的项目有不同的运行环境&#xff0c;因此&#xff0c;就免不了为每个项目配置不同的库。本科的时候嫌虚拟环境太麻烦&#xff0c;就直接略过没学&#xff0c;现在还是得来补课。 一般而言&#xff0…

队列实现(基于内存池思想)

1. 阅读公司代码的时候&#xff0c;发现公司代码向串口打印&#xff0c;先把数据加载到数组中&#xff0c;进入临界区&#xff0c;然后通过串口输出&#xff0c;退出临界区。 2. 当然还有向flash写数据&#xff0c;直接一次性原文写入&#xff0c;也没进入临界区&#xff0c;挂…

【CIO人物展】黄淮学院副CIO周鹏:构建数智化平台赋能学校高质量发展

周鹏 本文由黄淮学院副CIO周鹏投递并参与《2023中国数智化转型升级优秀CIO》榜单/奖项评选。丨推荐企业—锐捷网络 大数据产业创新服务媒体 ——聚焦数据 改变商业 黄淮学院是2004年经教育部批准成立的一所省属全日制普通本科高校。学校位于素有“豫州之腹地、天下之最中”之美…

第十七节——指令

一、概念 在Vue.js中&#xff0c;指令&#xff08;Directives&#xff09;是一种特殊的语法&#xff0c;用于为HTML元素添加特定的行为和功能。指令以v-作为前缀&#xff0c;通过在HTML标签中使用这些指令来操作DOM&#xff0c;修改元素的属性、样式或行为。 Vue.js提供了一组…

地理信息系统原理-空间数据结构(7)

​四叉树编码 1.四叉树编码定义 四叉树数据结构是一种对栅格数据的压缩编码方法&#xff0c;其基本思想是将一幅栅格数据层或图像等分为四部分&#xff0c;逐块检查其格网属性值&#xff08;或灰度&#xff09;&#xff1b;如果某个子区的所有格网值都具有相同的值&#xff0…