git的使用(简洁版)

什么是 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.mzph.cn/diannao/62212.shtml

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

相关文章

vscode可以编译通过c++项目,但头文件有红色波浪线的问题

1、打开 VSCode 的设置,可以通过快捷键 Ctrl Shift P 打开命令面板,然后搜索并选择 “C/C: Edit Configurations (JSON)” 命令,这将在 .vscode 文件夹中创建或修改 c_cpp_properties.json 文件 {"configurations": [{"name…

VS Code前端常用插件

通用类 auto close tag auto rename tag beautify class autocomplete for html Code Runner css peek dash JavaScript Debugger document this eslint font-awesome codes for html filesize git history gitlens html css support HTMLHint htmltagwrap indenticator Intel…

Android 16 开发者预览版抢先使用

Android 16 开发者预览版 获取 Android 16在 Google Pixel 设备上获取 Android 16设置 Android 模拟器 设置 Android 16 SDK获取 Android Studio安装 SDK更新应用的 build 配置 获取 Android 16 你可以通过以下任一方式获取 Android 16 在 Google Pixel 设备上获取 Android 1…

解析生成对抗网络(GAN):原理与应用

目录 一、引言 二、生成对抗网络原理 (一)基本架构 (二)训练过程 三、生成对抗网络的应用 (一)图像生成 无条件图像生成: (二)数据增强 (三&#xff…

docker 安装mysql8.4.0

1、拉取mysql8.4.0镜像 docker pullmysql:8.4.0-oraclelinux8查看镜像 docker images2、新建宿主机本地目录:用来挂载MySQL容器所产生的数据的目录 mkdir -p /home/admin/data/mysql /home/admin/logs/mysql /home/admin/conf/mysql3、在/home/admin/conf/mysql目…

ABAP OOALV模板

自用模板,可能存在问题 一、主程序 *&---------------------------------------------------------------------* *& Report ZVIA_OO_ALV *&---------------------------------------------------------------------* REPORT ZVIA_OO_ALV.INCLUDE ZVI…

DeepSpeed-chat RLHF实战

轩辕-6bRLHF落地实战 模型介绍:轩辕-6B 模型库 (modelscope.cn) 1.1偏好数据集构建 ​ 1.1.1Prompt构建 1.1.2 Response生成 保证RM训练数据和测试数据分布一致 使用模型来生成response,为了评价response的质量,可以提高采样参数中的…

通过抓包,使用frida定位加密位置

首先我们抓取一下我们要测试的app的某一个目标api,通过抓api的包,得到关键字。 例如:关键字:x-sap-ri 我们得到想要的关键字后,通过拦截 类,寻找我们的关键字,及找到发包收包的位置&#xff0c…

无线WiFi网络版毫米波雷达人体传感器,智能家居节能减排照明有人无人识别

在这个科技日新月异的时代,智能家居已经不再是遥不可及的未来概念,而是悄然融入了我们的日常生活,为我们的生活带来了未有的便捷与舒适。今天,让我们一起探索一项创新性的智能家居技术——飞睿智能无线WiFi网络版毫米波雷达人体传…

Linux介绍与安装指南:从入门到精通

1. Linux简介 1.1 什么是Linux? Linux是一种基于Unix的操作系统,由Linus Torvalds于1991年首次发布。Linux的核心(Kernel)是开源的,允许任何人自由使用、修改和分发。Linux操作系统通常包括Linux内核、GNU工具集、图…

26.100ASK_T113-PRO 测试摄像头 输出信息

1.测试代码 读到摄象头参数 输出 video_test.c #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/ioctl.h> #include <unistd.h> #include <stdio.h> #include <string.h> #include <linux/type…

Qt读写Usb设备的数据

Qt读写Usb设备的数据 问题:要读取usb设备进行通讯&#xff0c;qt好像没有对应的库支持。解决&#xff1a;libusbwindow下载 :Linux下载: QtUsb 开源的第三方库库里面的函数说明&#xff1a;window版本&#xff1a;Linux中也提供的直接下载测试代码&#xff1a;库下载&#xff1…

2024最新python使用yt-dlp

2024最新python使用yt-dlp下载YT视频 1.获取yt的cookie1&#xff09;google浏览器下载Get cookies.txt LOCALLY插件2&#xff09;导出cookie 2.yt-dlp下载[yt-dlp的GitHub地址](https://github.com/yt-dlp/yt-dlp?tabreadme-ov-file)1&#xff09;使用Pycharm(2024.3)进行代码…

python学opencv|读取图像

【1】引言 前序学习了使用matplotlib模块进行画图&#xff0c;今天开始我们逐步尝试探索使用opencv来处理图片。 【2】学习资源 官网的学习链接如下&#xff1a; OpenCV: Getting Started with Images 不过读起来是英文版&#xff0c;可能略有难度&#xff0c;所以另推荐一…

27加餐篇:gRPC框架的优势与不足之处

gRPC作为一个现代的、开源的远程过程调用(RPC)框架,在多个方面都展现了其优雅之处,同时也存在一些不足之处。这篇文章我们就相对全面的分析一下gRPC框架那些优雅的地方和不足的地方。 优雅的地方 gRPC作为一个RPC框架,在编码、传输协议已经支持多语言方面都比较高效,下…

linux模拟HID USB设备及wireshark USB抓包配置

文章目录 1. 内核配置2. 设备配置附 wireshark USB抓包配置 linux下模拟USB HID设备的简单记录&#xff0c;其他USB设备类似。 1. 内核配置 内核启用USB Gadget&#xff0c;使用fs配置usb device信息。 Device Drivers ---> [*] USB support ---><*> USB …

Ubuntu20.04运行R-VIO2

目录 1.环境配置2.构建项目3. 运行 VIO 模式4.结果图 1.环境配置 CMakeLists.txt中 C 使用 14、opencv使用4 2.构建项目 克隆代码库&#xff1a; 在终端中执行以下命令克隆项目&#xff1a;git clone https://github.com/rpng/R-VIO2.git编译项目&#xff1a; 使用 catkin_m…

基于YOLOv8深度学习的智慧课堂教师上课行为检测系统研究与实现(PyQt5界面+数据集+训练代码)

随着人工智能技术的迅猛发展&#xff0c;智能课堂行为分析逐渐成为提高教学质量和提升教学效率的关键工具之一。在现代教学环境中&#xff0c;能够实时了解教师的课堂表现和行为&#xff0c;对于促进互动式教学和个性化辅导具有重要意义。传统的课堂行为分析依赖于人工观测&…

wireshark基础

免责声明&#xff1a; 笔记的只是方便各位师傅学习知识&#xff0c;以下代码、网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 泷羽sec官网&#xff1a;https://longyusec.com/ 泷羽sec B站地址&#xff1a;https:/…

单例模式入门

单例模式是一种创建型设计模式&#xff0c; 让你能够保证一个类只有一个实例&#xff0c; 并提供一个访问该实例的全局节点。 它的运作方式是这样的&#xff1a; 如果你创建了一个对象&#xff0c; 同时过一会儿后你决定再创建一个新对象&#xff0c; 此时你会获得之前已创建的…