当前位置: 首页 > news >正文

Git命令详解与工作流介绍:全面掌握版本控制系统的操作指南

Git

Git是一个版本控制系统(也称为源代码控制系统),允许程序员和其他处理文本文件的人在独立工作时协调更改。Git还支持二进制资产,如图片,但这些格式不支持逐行版本管理,这使得版本控制真正强大。

Git概念和工作流程

每个Git用户维护一个单独的代码库(或多个代码库)以处理源代码。项目启动的代码库被视为真实来源。其他用户与这个远程代码库同步,该代码库可以托管在私有网络上或由公共服务提供商(如GitHub、GitLab或BitBucket)提供。

将内容移动到远程代码库和从远程代码库移动内容有正式的流程。每个更改经过四个阶段,最后存储在远程代码库中。这四个阶段各自有一个相关的位置来存储代码。这些位置是:

  • 工作目录
  • 暂存环境
  • 本地代码库
  • 远程代码库

以下部分描述每个位置的目的和使用。

工作目录

工作目录是本地计算机文件系统中代码的位置。开发人员在工作目录中添加和更改代码。

暂存环境

暂存环境是Git特有的区域,在许多其他版本控制系统中并不存在。开发人员使用git addgit reset命令将文件添加到暂存环境或从暂存环境中移除文件。可以将暂存视为一个临时区域,在提交到本地代码库之前,文件会存储在这里。

本地代码库

本地代码库是存储在本地计算机上的Git代码库实例,物理上由顶级目录下名为.git的子目录表示(初始的点使其隐藏)。.git目录包含Git管理项目所需的元数据和其他信息。一旦内容被添加到暂存环境,开发人员使用git commit命令将新内容和更新内容存储到本地代码库。git pull命令从远程代码库更新本地代码库,使本地目录与其他开发人员的工作保持同步。

远程代码库

远程代码库是网络上的Git代码库,是特定项目下所有内容的唯一真实来源。开发人员使用git push命令将内容从本地代码库上传到远程代码库。

以下图示显示了工作目录、暂存环境、本地代码库和远程代码库的位置,以及将数据移动到每个位置的git命令。在从远程代码库拉取内容到本地代码库后,该内容在本地文件系统中可用。

使用代码库

以下部分描述创建本地代码库、将远程代码库下载(克隆)到本地计算机以及使用远程代码库的更改更新本地代码库的git命令。

git init

创建一个本地代码库,该代码库将由名为.git的目录表示。在远程代码库中工作时不需要此命令。使用git clone开始与其他代码库的工作。如果未提供可选的<repo_directory>参数,则在当前目录中创建.git文件。如果提供了<repo_directory>参数,则创建该目录,并在该目录中创建.git目录。

示例:

$ git init ./coolcode
Initialized empty Git repository in /home/lennonjohn/coolcode/.git/
git clone

从远程代码库下载内容以进行本地操作。如果提供了<target_directory>参数,则将代码库内容下载到该目录(该目录必须为空)。否则,git会根据远程代码库的名称创建一个目录。

示例:

$ git clone https://github.com/redhat-developer/developers.redhat.com.git ./
git pull

在本地代码库中调用时,从关联的远程代码库下载最新的当前资产。

示例:

$ git pull
Already up to date.
git fetch

下载来自远程代码库的更新资产,但不会合并本地代码库中的分支中的增量。

示例:

$ git fetch
git log --oneline

显示代码库中所有活动的简要格式。

示例:

$ git log --oneline
工作与分支

以下部分描述您可以使用的各种git分支命令表达式,以便在代码库中处理分支。

git branch

显示本地代码库中所有分支,并标记当前已检出的分支。

示例:

$ git branch
创建分支

创建一个新分支。如果未提供可选参数<existing_branch_name>,则新分支将从当前工作分支派生。

示例:

$ git branch dev main
切换分支

更改当前工作分支。

示例:

$ git checkout dev
工作与内容

以下部分描述您可以使用的各种git命令,以检查和管理本地代码库中的文件。

git status

报告当前工作目录中文件和目录的状态。

示例:

$ git status
git add

将内容从当前分支的本地计算机工作目录添加到暂存环境。

示例:

$ git add ./git_cheat_sheet/
git commit

将暂存环境中的内容提交到本地代码库。

示例:

$ git commit -m "adding new file for git-cheat-sheet" ./git_cheat_sheet/readme.md
git push

将所有提交到本地代码库的内容上传到与当前工作目录关联的默认远程代码库。

示例:

$ git push
回滚文件

将文件恢复到版本控制下的先前状态。

示例:

$ git restore --staged config.json
删除文件

从当前目录中删除文件或目录。

示例:

$ rm hithere.txt
压缩文件

压缩和解压缩文件或目录。

示例:

$ tar cvzf docs.tar.gz documents/
帮助命令

显示给定命令的内部帮助文档。

示例:

$ man cp
网络命令

处理与网络相关的命令。

示例:

$ curl https://example.com -o article.html

http://www.lryc.cn/news/540366.html

相关文章:

  • 提升信息检索准确性和效率的搜索技巧
  • Qt 中使用 ffmpeg 获取采集卡数据录制视频
  • Python爬虫TLS
  • 【Linux AnolisOS】配置Linux固定ip地址。然后在Windows上连接使用linux中docker容器里的redis和nacos。
  • IDEA中查询Maven项目的依赖树
  • 【Ubuntu】GPU显存被占用,但显示没有使用GPU的进程
  • 【并发编程】Java并发编程核心包
  • Unity 淡入淡出
  • 完整的 LoRA 模型训练步骤:如何使用 Kohya_ss 进行 LoRA 训练
  • 视觉分析之边缘检测算法
  • git输错用户名或者密码
  • 【Unity Shader编程】之图元装配与光栅化
  • 以ChatGPT为例解析大模型背后的技术
  • 网页版的俄罗斯方块
  • Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境
  • 数据中心储能蓄电池状态监测管理系统 组成架构介绍
  • layui.table.exportFile 导出数据并清除单元格中的空格
  • vue-指令
  • 跟着李沐老师学习深度学习(十三)
  • 鸿蒙与跨端迁移的重要性
  • 成员函数定义后面加const是什么功能:C++中const成员函数的作用
  • QSNCTF-WEB做题记录
  • UE引擎游戏加固方案解析
  • 统计函数运行时间的python脚本
  • 大模型WebUI:Gradio全解11——使用transformers.agents构建Gradio UI(3)
  • spring boot知识点5
  • 【C++】面向对象的三大特性
  • Docker构建时,设定默认进入的工作目录的方法
  • DeepSeek等大模型功能集成到WPS中的详细步骤
  • 教学资料档案管理系统