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

Git 概述及相关命令(1)

Git概述

Git是一个强大的分布式版本控制系统,广泛用于代码管理和协作开发。

  • 仓库(Repository): 存储项目文件及其历史记录的地方,分为本地仓库和远程仓库。
  • 工作区(Working Directory): 用户当前工作文件所在的目录。
  • 暂存区(Staging Area): 临时保存更改的区域,记录了下一次提交的文件快照。
  • 提交(Commit): 将暂存区的内容保存到仓库,形成一个新的版本。
  • 分支(Branch): 指向某次提交的指针,用于在开发中并行工作。

Git操作流程图

Git相关命令

git配置命令

  • 查看用户名和邮箱地址:
$ git config user.name
$ git config user.email
  • 修改用户名和邮箱地址:
$ git config --global user.name "username"
$ git config --global user.email "email"

创建仓库

  • 在现有项目中初始化Git仓库:
git init
  • 从远程仓库克隆:
git clone <repository_url>

<repository_url>:远程仓库的 URL 地址,可以是 HTTPS、SSH、或 Git 协议形式,例如:

  • HTTPShttps://github.com/user/repo.git
  • SSHgit@github.com:user/repo.git

查看工作区文件的状态

$ git status

将文件添加到暂存区

$ git add "filename"
$ git add . 

解释:"git add ."

  1. 添加当前目录下所有更改的文件到暂存区,包括子目录中的更改。
  2. 包括新增的文件、修改过的文件,但会忽略 .gitignore 文件中指定的文件。

提交文件到本地仓库

$ git commit -m "Commit message"

解释:

  • git commit:表示提交操作,告诉 Git 把暂存区的内容保存到仓库中形成一个新的快照。
  • -m:用于指定提交的描述信息。
  • "Commit message":是一段简短的描述,解释了这次提交的目的或更改的内容

查看提交历史版本信息

$ git log
$ git reflog

回退历史版本

git reset --hard "commit_id"

解释:

  • git reset:用于重置当前分支的 HEAD 到指定提交,支持多种模式(--soft--mixed--hard)。
  • --hard:表示完全重置,即同时重置提交历史、暂存区和工作区。
  • <commit_id>:指定的提交 ID(如 a1b2c3d)是目标提交,分支将回到该提交的状态。

查看分支

$ git branch

创建分支

$ git branch "分支名"

删除分支

$ git branch -D "分支名"

跳转分支

$ git checkout "分支名"

合并分支

$ git merge "分支名"

添加远程仓库地址

git remote add origin git@gitee.com:xu-fuyong/stm32-freertos-led-test.git

解释:

  • 这条命令将远程仓库添加到本地 Git 仓库中,并命名为 origin
  • 其中,origin 是默认的远程名称(可以自定义其他名称,但 origin 常用作默认)。
  • 地址 git@gitee.com:xu-fuyong/stm32-freertos-led-test.git 是你在 Gitee 平台上的远程仓库的 SSH 地址,也可以是HTTP地址。

本地分支推送到远程仓库

git push -u origin "master"

解释:

  • 这条命令将本地的 master 分支推送到远程仓库的 master 分支。
  • -u 选项会将本地 master 分支与远程的 origin/master 分支关联起来,从此以后,只需使用 git push,Git 会自动推送到 origin 的 master 分支。
  • 这个命令在本地分支首次推送到远程时很有用,因为它建立了默认的上游分支关联。

下面文章会对以上命令进行示例演示 !!!


http://www.kler.cn/a/378816.html

相关文章:

  • 华为od技术一面
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day8
  • 又一次安装autoware.universe的过程
  • 浅谈UI自动化
  • Swift 开发教程系列 - 第3章:控制流
  • ubuntu unrar解压 中文文件名异常问题解决
  • 【小白学机器学习28】 统计学脉络+ 总体+ 随机抽样方法
  • 【Git】Git 版本控制与协作开发指南
  • 在VSCode中读取Markdown文件
  • 【linux-Day7】Vim的使用和简单配置
  • 前端技术月刊-2024.11
  • Google 地图类型
  • mysq-B+Treel(一)
  • 【HTML】——VSCode 基本使用入门和常见操作
  • zoho域名邮箱指南:如何设置优化烽火邮箱?
  • 学编程应该怎么写博客,有什么推荐的平台吗?
  • windows在两台机器上测试 MySQL 集群实现实时备份
  • 三十、Python基础语法(继承-下)
  • Shutdown Abort 强制关库,真的有可能起不来?
  • C++算法练习-day32——222.完全二叉树的节点个数
  • 宠物排泄物图像分割系统:高效目标识别
  • 开放式耳机什么品牌质量好?5款排行榜里的开放式蓝牙耳机
  • rnn/lstm 项目实战
  • 关于使用K8s实现容器化作业的总时效最优调度
  • 【设计模式】结构型模式(一):适配器模式、装饰器模式
  • 爬虫技术——小白入狱案例