git的使用(简洁版)

news2024/11/30 11:19:51

什么是 Git?

Git 是一个分布式版本控制系统 (DVCS),用于跟踪文件的更改并协调多人之间的工作。它由 Linus Torvalds 在 2005 年创建,最初是为了管理 Linux 内核的开发。Git 的主要目标是提供高效、易用的版本控制工具,使得开发者能够轻松地管理代码库的变更历史。

Git 的核心概念

  1. Repository(仓库):存储项目代码和版本历史的地方。可以是本地仓库,也可以是远程仓库。
  2. Commit(提交):一个代码变更的记录,包含了作者、时间、描述和变更内容。
  3. Branch(分支):从主分支(通常是 master 或 main)分出来的独立开发线。允许多个开发者同时工作在不同的特性或修复上。
  4. Merge(合并):将一个分支的变更合并到另一个分支的过程。
  5. Clone(克隆):从一个远程仓库复制一份完整的代码库到本地。
  6. Pull(拉取):从远程仓库获取最新的变更并合并到本地分支。
  7. Push(推送):将本地分支的变更推送到远程仓库。
  8. Status(状态):查看当前工作目录中文件的变更状态。

 

  1. 用户A从服务端仓库中获取最新的代码和文件,这个过程称为“Pull”。通过这种方式,他们可以在自己的计算机上获得项目的最新状态。
  2. 在完成一些修改或添加新功能后,用户A会将自己的更改推送到服务端仓库,这就是所谓的“Push”操作。这样做的目的是确保其他团队成员也能看到这些更新。
  3. 同样地,用户B和用户C也会执行类似的流程——先从服务端仓库拉取数据,然后再将他们的工作成果上传回去。

  1. 抓取/克隆 (fetch/clone):首先,你需要从一个远程仓库(Remote)中获取代码。这个操作通常通过git clone命令完成,它会将远程仓库的所有内容复制到你的本地计算机上。

  2. 检出 (checkout):在本地仓库(Repository)中,你可以使用git checkout命令切换到不同的分支或提交记录。这样可以让你在一个安全的环境中测试和修改代码。

  3. 添加 (add):当你对文件进行了更改并希望将其纳入版本控制时,需要使用git add命令将这些文件添加到暂存区(Index)。这是提交前的一个必要步骤。

  4. 提交 (commit):接下来是执行git commit命令来正式保存你所做的所有改动。此时,Git会创建一个新的快照,并附带一条描述此次变更的信息。

  5. 拉取 (pull):为了确保你的本地副本是最新的,可以通过运行git pull命令来合并任何来自远程仓库的新提交。此操作相当于先执行git fetch以下载最新的数据,然后用git merge将它们整合进当前分支。

  6. 推送 (push):最后一步是使用git push命令将你在本地做出的修改推送到远程服务器上。这样其他团队成员就可以看到并使用你的更新了。

Git 快速入门

1. 安装 Git
  • Windows: 下载并安装 Git for Windows。
  • macOS: 使用 Homebrew 安装,brew install git
  • Linux: 使用包管理器安装,例如在 Ubuntu 上使用 sudo apt-get install git
2. 配置 Git

在开始使用 Git 之前,你需要配置你的用户名和邮箱地址,这些信息将会出现在你的提交记录中。

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

3. 创建新仓库

你可以通过两种方式创建一个新的 Git 仓库:

创建本地仓库的方法有两种:

  • 一种是创建全新的仓库:git init,会在当前目录初始化创建仓库。
  • 另一种是克隆远程仓库:git clone [url]
  • 从零开始创建一个新的仓库

    # 初始化一个新的 Git 仓库
    git init my-project
    cd my-project
    
  • 克隆一个已有的远程仓库

    git clone https://github.com/username/my-project.git
    cd my-project
    

创建完多出了一个被隐藏的.git目录,这就是本地仓库Git的工作场所。

4. 添加文件

可以简单理解为,git add命令就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到仓库。

# 创建一个新文件
echo "Hello, World!" > README.md

# 将文件添加到暂存区
git add README.md

# 查看状态
git status

修改文件“R.md”,未暂存:

执行git add .暂存:

5. 提交变更

当你完成了一些工作,可以通过创建一个提交(Commit)来记录这些变更。

# 提交变更
git commit -m "Initial commit"

提交时,-m 参数后面跟随的是提交信息,用于描述这次变更的内容。

6. 查看提交历史

你可以使用 git log 命令查看仓库的提交历史。

git log

7. 创建分支

Git 的分支功能非常强大,允许你在不影响主分支的情况下进行开发。

# 创建并切换到新分支
git branch my-feature
git checkout my-feature

或者使用一行命令:

git checkout -b my-feature

8. 合并分支

当你在分支上完成了开发工作,可以将该分支的变更合并到主分支。

# 切换回主分支
git checkout main

# 合并 my-feature 分支到 main 分支
git merge my-feature

9. 删除分支

当你不再需要某个分支时,可以将其删除。

git branch -d my-feature

10. 远程仓库操作

Git 支持与远程仓库交互,例如 GitHub、GitLab 等。

  • 添加远程仓库

    git remote add origin https://github.com/username/my-project.git
    
  • 推送本地分支到远程仓库

    git push -u origin main
    

    -u 参数表示将本地分支与远程分支关联,这样以后可以直接使用 git push 而不需要指定远程分支。

  • 从远程仓库拉取更新

    git pull origin main
    

常用 Git 命令

  • git init: 初始化一个新仓库。
  • git clone [url]: 克隆一个远程仓库到本地。
  • git add [file]: 将文件添加到暂存区。
  • git commit -m "message": 提交暂存区的变更。
  • git status: 查看工作目录的状态。
  • git log: 查看提交历史。
  • git branch: 查看分支。
  • git checkout [branch]: 切换分支。
  • git merge [branch]: 合并指定分支到当前分支。
  • git push [remote] [branch]: 推送变更到远程仓库。
  • git pull [remote] [branch]: 从远程仓库拉取并合并变更。

更多 Git 功能

  • git diff: 查看工作目录和暂存区之间的差异。
  • git stash: 临时保存当前工作目录的变更,便于切换分支或处理紧急任务。
  • git rebase: 将一个分支的变更应用到另一个分支上,通常用于保持提交历史的整洁。
  • git tag: 为特定的提交打上标签,通常用于标记发布版本。

总结

Git 是一个强大的工具,通过掌握这些基本的命令,你可以开始使用 Git 管理你的代码。随着使用的深入,你还可以学习更多高级的 Git 功能,如 rebasestashtag 等。

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

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

相关文章

联想M7400Pro打印机报无法打印02 关闭电源,然后重新打开。故障检修分析

联想M7400Pro打印机无法打印02可能是由于硬件故障、软件问题、通信故障等引起的。 以下是故障的解决方法: 1、关闭打印机(可尝试多次重新启动打印机)。 2、重新放置碳粉盒组件。 3、检查打印机驱动程序是否已正确安装。 4、检查打印机的设置,确保已选择正确的打印模式…

排序(数据结构)

排序: 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 常见排序法 . 常见排序算法的实现 插入排序 1.直接插入排序 2.希尔排序( 缩小增量排序) 希尔排序的特性总结&#x…

【深度学习】铝箔表面缺陷检测【附链接】

一、铝箔表面缺陷种类 铝箔广泛应用于食品包装、药品包装和工业用途等领域,表面质量直接影响产品的性能和安全性。铝箔表面常见的缺陷主要包括: 划痕:铝箔在生产、加工或运输过程中可能会出现划痕,影响外观和功能。 气泡&#x…

OpenCV 图像轮廓查找与绘制全攻略:从函数使用到实战应用详解

摘要:本文详细介绍了 OpenCV 中用于查找图像轮廓的 cv2.findContours() 函数以及绘制轮廓的 cv2.drawContours() 函数的使用方法。涵盖 cv2.findContours() 各参数(如 mode 不同取值对应不同轮廓检索模式)及返回值的详细解析,搭配…

AI之Data之Label Tool:Label Studio(多类型数据标注工具)的简介、安装和使用方法、案例应用之详细攻略

AI之Data之Label Tool:Label Studio(多类型数据标注工具)的简介、安装和使用方法、案例应用之详细攻略 目录 Label Studio的简介 1、特点 Label Studio的安装和使用方法: 1、Label Studio 提供多种安装方式 T1、使用Docker安装 T2、使用pip安装&am…

【Linux相关】服务器无网情况配置conda

【Linux相关】 服务器无网情况配置conda 文章目录 环境配置1. 本地下载miniconda,传到服务器2. 确认安装包是否传送成功3. 确保有安装权限4. 安装5. 写路径6. 看一下是否成功 环境配置 ssh的话,服务器连不上网,无法在线下载,需要本…

Redis使用场景-缓存-缓存穿透

前言 之前在针对实习面试的博文中讲到Redis在实际开发中的生产问题,其中缓存穿透、击穿、雪崩在面试中问的最频繁,本文加了图解,希望帮助你更直观的了解缓存穿透😀 (放出之前写的针对实习面试的关于Redis生产问题的博…

Docker desktop 改变存储位置

项目场景: 在windows下,使用docker desktop是使用docker最简单直接的方式。但是,这毕竟是一个可视化的界面,使用起来还是和linux环境下的版本有很大的区别。 例如,使用docker desktop,会默认将镜像以及容…

[CA] 尝试深入理解core.cpp -1

#我给你代码,你给我在源代码上额外加上中文注释!,如果是函数告诉我它读取了什么结构,传递了什么值,可能或者已经知道它将在哪些函数利用,是体现了pipeline 的哪一步# #include "core.h" #includ…

宠物空气净化器推荐2024超详细测评 希喂VS霍尼韦尔谁能胜出

最近有粉丝一直在评论区和后台探讨宠物空气净化器是不是智商税的问题,有人认为宠物空气净化器肯定不是智商税,有些人认为将其购回家就是个没用的东西,还占地方,双方各有自己的观点。 其实宠物空气净化器和普通的空气净化器是有很大…

NeuIPS 2024 | YOCO的高效解码器-解码器架构

该研究提出了一种新的大模型架构,名为YOCO(You Only Cache Once),其目的是解决长序列语言模型推理中的内存瓶颈。YOCO通过解码器-解码器结构的创新设计,显著减少推理时的显存占用并提升了长序列的处理效率。 现有大模…

《数据挖掘:概念、模型、方法与算法(第三版)》

嘿,数据挖掘的小伙伴们!今天我要给你们介绍一本超级实用的书——《数据挖掘:概念、模型、方法与算法》第三版。这本书是数据挖掘领域的经典之作,由该领域的知名专家编写,系统性地介绍了在高维数据空间中分析和提取大量…

RT-DETR融合Inner-IoU及相关改进思路

RT-DETR使用教程: RT-DETR使用教程 RT-DETR改进汇总贴:RT-DETR更新汇总贴 《Inner-IoU: More Effective Intersection over Union Loss with Auxiliary Bounding Box》 一、 模块介绍 论文链接:https://arxiv.org/abs/2311.02877 代码链接&a…

解决“磁盘已插上,但Windows系统无法识别“问题

电脑上有2块硬盘,一块是500GB的固态硬盘,另一块是1000GB的机械硬盘,按下开机键,发现500G的固态硬盘识别了,但1000GB的机械硬盘却无法识别。后面为了描述方便,将"500GB的固态硬盘"称为X盘&#xf…

[2024年3月10日]第15届蓝桥杯青少组stema选拔赛C++中高级(第二子卷、编程题(2))

方法一&#xff08;string&#xff09;&#xff1a; #include <iostream> #include <string> using namespace std;// 检查是否为回文数 bool isPalindrome(int n) {string str to_string(n);int left 0, right str.size() - 1;while (left < right) {if (s…

智慧防汛平台在城市生命线安全建设中的应用

随着城市化进程的加快&#xff0c;城市基础设施的复杂性和互联性不断增强&#xff0c;城市生命线的安全管理面临前所未有的挑战。智慧防汛平台作为城市生命线安全建设的重要组成部分&#xff0c;通过现代信息技术提升城市防汛应急管理的智能化水平&#xff0c;保障城市安全。 …

【R安装】VSCODE安装及R语言环境配置

目录 VSCODE下载及安装VSCODE上配置R语言环境参考 Visual Studio Code&#xff08;简称“VSCode” &#xff09;是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的&#xff0c;针对于编写现代Web和云应用的跨平台源代码编辑器&…

Unity3D模型场景等测量长度和角度功能demo开发

最近项目用到多段连续测量物体长度和角度功能&#xff0c;自己研究了下。 1.其中向量角度计算&#xff1a; 需要传入三个坐标来进行计算。三个坐标确定两条向量线段的方向&#xff0c;从而来计算夹角。 public Vector3 SetAngle(Vector3 p1, Vector3 p2,Vector3 p3) { …

02-线性表

目录 2.1线性表基本概念 线性表特点 2.2线性表的顺序表示和实现 Ⅰ.顺序表的初始化 Ⅱ.顺序表的取值 Ⅲ.顺序表的查找 Ⅳ.顺序表的插入 Ⅴ.顺序表的删除 2.3线性表的链式表示和实现 单链表&#xff08;线性链表&#xff09; Ⅰ.单链表的初始化 Ⅱ.单链表的取值 Ⅲ.单链…

云计算基础-期末复习

第一章&#xff1a;云计算概论 一、云计算的定义与特征 1. 定义&#xff1a; 云计算是一种通过网络以按需、可扩展的方式获取计算资源和服务的模式。它将计算资源视为一种公用事业&#xff0c;用户可以根据需求动态获取和释放资源&#xff0c;而无需了解底层基础设施的细节。…