当前位置: 首页 > 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

相关文章:

  • 火绒终端安全管理系统V2.0【系统防御功能】
  • 校招后台开发:JAVA和GO选哪一个?
  • 设计模式教程:代理模式(Proxy Pattern)
  • python中的Pillow 库安装后需要重启吗?
  • Python正则表达式处理中日韩字符过滤全解析
  • 基于Spring Security 6的OAuth2 系列之二十 - 高级特性--令牌交换(Token Exchange)
  • JS:事件对象
  • 2024华为OD机试真题-单词接龙(C++)-E卷B卷-100分
  • web的分离不分离:前后端分离与不分离全面分析
  • 深入理解 NoSQL 数据库:MongoDB 与 Cassandra
  • 04.Docker 镜像命令
  • 【JavaEE进阶】MyBatis入门
  • 房产销售|基于Springboot+vue的房产销售系统平台(源码+数据库+文档)
  • 向量数据库1:向量数据库的选型
  • table表格实现多行合并效果实现
  • Java 集合数据处理技巧:使用 Stream API 实现多种操作
  • 八大经典排序算法
  • LeetCode:2595.奇偶位数
  • 云原生DevOps:Zadig架构设计与企业实践分析
  • 七星棋牌源码高阶技术指南:6端互通、200+子游戏玩法深度剖析与企业级搭建实战(完全开源)
  • 做网站如何挣钱/徐州百度搜索网站排名
  • 江门网站seo优化/国外b站不收费免费2023
  • 做网站还是移动开发/云搜索引擎
  • 网站建设案例 算命网站/站长工具 站长之家
  • 9.9元包邮网站怎么做/免费的网站域名查询565wcc
  • web动态网站开发的书籍/怎么做平台推广