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

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.kler.cn/a/558309.html

相关文章:

  • DeepSeek R1本地+私有云版医疗AI部署开发成功案例技术剖析
  • 机器视觉视觉halcon3d中位姿的定义
  • 运维Ansible面试题及参考答案
  • 09.容器单机编排工具 Docker Compose
  • leetcode hot100-34 合并K个升序链表
  • Swiper插件的运用和学习
  • 自动驾驶与智慧交通:未来城市的交通革命即将来临
  • 基于YOLO11深度学习的运动鞋品牌检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】
  • EquinoxProject:一个适合学习DDD、CQRS、Event Sourcing等技术.Net Web框架搭建开源项目
  • 【落羽的落羽 数据结构篇】树、二叉树
  • 请解释 Vue 中的生命周期钩子,不同阶段触发的钩子函数及其用途是什么?
  • .NET周刊【2月第2期 2025-02-09】
  • Docker Mysql 数据迁移
  • 1.24作业
  • 技术总结汇总
  • 在工业生产中,物料搬运环节至关重要,搬运机器人开启新篇章
  • 【Quest开发】全身跟踪(一)
  • 【深度学习】Python多线程/多进程在神经网络模型的应用实战
  • 中文Build a Large Language Model (From Scratch) 免费获取全文
  • LLM增强的RLHF框架,用多模态人类反馈提升自动驾驶安全性!