Git详解及常用命令

前言

Git 是一个分布式版本控制系统,用于跟踪和管理项目的代码变化。它由Linus Torvalds在2005年创建,现在是开源社区中最流行的版本控制工具之一。

国内码云地址:工作台 - Gitee.com

  1. 版本控制系统 (VCS):Git 用于跟踪文件和目录的变化,以便多个开发者可以协同工作,并记录项目的历史。每次更改都被记录为一个"提交",并且可以随时回退到以前的提交状态。

  2. 分布式系统:与一些中心化的版本控制系统不同,Git 是分布式的,每个开发者都有完整的代码仓库的拷贝。这意味着即使没有网络连接,您也可以进行版本控制操作,然后在稍后将更改同步。

  3. 仓库 (Repository):Git 仓库是包含项目文件和历史记录的目录。有两种类型的 Git 仓库:本地仓库和远程仓库。本地仓库存在于开发者的计算机上,而远程仓库通常位于云端或网络上的其他位置,用于协作。

  4. 分支 (Branch):分支是 Git 仓库的一个重要概念。它允许开发者在不影响主要代码线的情况下进行独立的开发。开发者可以创建、合并、删除分支,以便并行开发不同的功能或修复不同的 bug。

  5. 提交 (Commit):提交是对代码库所做更改的快照。每次提交都有一个唯一的标识符(哈希值),并包含了修改的文件、提交消息(对更改的描述)和提交者的信息。

  6. 工作目录 (Working Directory):工作目录是当前正在工作的文件副本,它与 Git 仓库中的特定提交相对应。当您编辑工作目录中的文件时,您可以通过提交将这些更改保存到仓库中。

  7. 暂存区 (Staging Area):暂存区是位于工作目录和仓库之间的中间层。您可以使用 git add 命令将更改从工作目录添加到暂存区,然后使用 git commit 命令将这些更改保存为一个新的提交。

  8. 远程仓库 (Remote Repository):远程仓库是分布式团队协作的关键。它是一个存储在网络上的 Git 仓库,允许多个开发者协同工作,同步和分享代码。

  9. 克隆 (Clone):克隆是创建远程仓库的本地拷贝。开发者可以使用 git clone 命令从远程仓库中复制代码到本地计算机,以便进行开发。

  10. 合并 (Merge):当一个分支的更改需要合并到另一个分支时,可以使用 git merge 命令将两个分支的更改合并在一起。

  11. 冲突解决 (Conflict Resolution):当多个开发者修改了同一文件的相同部分,会导致冲突。在合并时,需要手动解决这些冲突。

  12. 分布式开发协作:Git 允许多个开发者协同工作,他们可以通过远程仓库共享代码,并在分支上独立工作。开发者可以通过拉取(pull)和推送(push)来同步他们的更改。

  13. GitHub 和 GitLab:这些是基于 Git 的托管服务,使开发者能够在云端存储和协作开发他们的项目。GitHub 和 GitLab 提供了许多协作工具,如问题跟踪、合并请求等。

  14. 命令行和图形用户界面 (GUI):Git 可以通过命令行和各种图形用户界面工具来使用。命令行提供更多的灵活性和控制,而 GUI 工具通常更易于入门。

一. Gitee新建仓库

准备工作

(1).创建Gitee账号

这个自行创建即可

(2).安装Git

这里不过多介绍,自行查阅资料安装即可 

1.创建开源仓库

填写好仓库相关信息创建开源仓库

2.创建本地仓库

新建完开源仓库后,会有相关提示命令,将其复制到文档中备用使用

 在本地磁盘中新建一个文件夹当作自己存放本地项目的仓库,如果考虑到多人开发,那就需要为自己的组员单独创建文件夹

 进入到当前本地文件夹,准备进行全局配置及初始化

全局配置

将刚刚创建完开源仓库后的提示命令中将全局配置中的命令依次执行

全局配置完成后,在C:\Users\用户名 目录下找到.gitconfig文件时打开,确认为自己的配置时即为配置成功

输入以下命令创建本地仓库文件夹

mkdir 自定义的仓库名称
cd 自定义的仓库名称

初始化本地仓库,将当前目录标记为被Git所管理的仓库

git init

将新建的仓库与Gitee中的仓库进行关联

新建 README.md 文件

touch README.md

查看当前文件状态

git status

当出现文件名为红色时说明并没有被git所管理 

提交文件,将文件交给git管理

git add README.md

git commit -m "first commit"

git remote add origin 自己的gitee地址

推送本地代码到远程仓库中

git push -u origin "master"

注意:如果是第一次使用,需要输入自己的账号和密码

到这里如果没有出现错误的话那么本地仓库就已经搭建好了且已与远程仓库连接并交给Git进行管理了 

3.如何上传自己的项目

 将项目拷贝到当前文件夹

依次执行以下命令 

git add .

git commit -am '一期已提交'
git push

执行完成之后可以到自己的Gitee主页仓库中查看是否提交完成

二.协同开发开源仓库

1.项目克隆

这里使用同一台电脑模拟多人开发,再进行创建一个用户文件夹,模拟增加组员开发

 在当前文件夹中进行克隆远程仓库中的项目

git clone 远程仓库地址

2. 项目文件提交

假设组员甲添加某项目文件并进行提交远程仓库,其余组员进行接受

组员甲执行命令(已完成文件readme.txt)

git add .

git commit -am '配置文件已修改'

git push

命令提交完成后我们可以查看远程仓库是否存在

 确认远程仓库已接收到时,这时组员乙准备更新项目,获取到本地仓库

组员乙执行命令

git pull

执行完成后可以查看是否获取到本地仓库

命令:ll 

 

三.Git命令总结

  1. git init:初始化一个新的 Git 仓库。

  2. git clone <repository-url>:克隆一个远程仓库到本地计算机。

  3. git add <file>:将文件的更改从工作目录添加到暂存区。

  4. git add .:将所有工作目录中的更改添加到暂存区。

  5. git commit -m "commit message":将暂存区中的更改保存为一个新的提交。

  6. git status:查看工作目录、暂存区和当前分支的状态。

  7. git log:查看提交历史记录。

  8. git diff:查看当前工作目录和最新提交之间的差异。

  9. git branch:列出所有分支,当前分支会有特殊标记。

  10. git branch <branch-name>:创建一个新分支。

  11. git checkout <branch-name>:切换到另一个分支。

  12. git merge <branch-name>:将指定分支的更改合并到当前分支。

  13. git pull:从远程仓库拉取最新更改并合并到当前分支。

  14. git push:将本地分支的更改推送到远程仓库。

  15. git remote -v:查看远程仓库的列表。

  16. git remote add <remote-name> <repository-url>:添加一个新的远程仓库。

  17. git remote remove <remote-name>:移除已添加的远程仓库。

  18. git reset <commit>:将 HEAD 指针和当前分支移到指定的提交。

  19. git revert <commit>:创建一个新的提交,用于撤销指定提交的更改。

  20. git stash:将当前工作目录的更改保存到一个临时区域,以便稍后恢复。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/125197.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)

多目标追踪实例分割目标检测 YOLO (You Only Look Once) 是一个流行的目标检测算法&#xff0c;它能够在图像中准确地定位和识别多个物体。 本项目是基于 YOLO 算法的目标跟踪系统&#xff0c;它将 YOLO 的目标检测功能与目标跟踪技术相结合&#xff0c;实现了实时的多目标跟…

MUYUCMS v2.1:一款开源、轻量级的内容管理系统基于Thinkphp开发

MuYuCMS&#xff1a;一款基于Thinkphp开发的轻量级开源内容管理系统&#xff0c;为企业、个人站长提供快速建站解决方案。它具有以下的环境要求&#xff1a; 支持系统&#xff1a;Windows/Linux/Mac WEB服务器&#xff1a;Apache/Nginx/ISS PHP版本&#xff1a;php > 5.6 (…

【c++】——类和对象(中)——赋值运算符重载

作者:chlorine 专栏:c专栏 你站在原地不动,就永远都是观众。 【学习目标】 拷贝复制——赋值运算符重载 目录 &#x1f393;运算符重载的初步认识 &#x1f308;运算符重载 &#x1f308;赋值运算符重载格式 (上) &#x1f308;operator__判断俩个日期是否相等 &#x…

【Shell脚本8】Shell printf 命令

Shell printf 命令 printf 命令模仿 C 程序库&#xff08;library&#xff09;里的 printf() 程序。 printf 由 POSIX 标准所定义&#xff0c;因此使用 printf 的脚本比使用 echo 移植性好。 printf 使用引用文本或空格分隔的参数&#xff0c;外面可以在 printf 中使用格式化…

SQL note1:Basic Queries + Joins Subqueries

目录 一、Basic Queries 1、数据库术语 2、查表 3、过滤掉我们不感兴趣的行 4、布尔运算 5、过滤空值&#xff08;NULL&#xff09; 6、分组和聚合 1&#xff09;汇总数据的列 2&#xff09;汇总数据组 7、分组聚合的警告 1&#xff09;SELECT age, AVG(num_dogs) FR…

代挂单页网址发布页+加盟代理+APP下载页源码

代挂单页加盟代理网址发布页app下载页HTML单页版本&#xff0c;自行修改源码内文字。自行修改联系方式、登录地址&#xff01;上传即可使用。源码我已全部打包好&#xff0c;直接上传本站提供的源码&#xff0c;无后台&#xff0c;直接访问即可&#xff01; 源码下载&#xff…

STM32外设系列—MPU6050角度传感器

&#x1f380; 文章作者&#xff1a;二土电子 &#x1f338; 关注公众号获取更多资料&#xff01; &#x1f438; 期待大家一起学习交流&#xff01; 文章目录 一、MPU6050简介二、MPU6050寄存器简介2.1 PWR_MGMT_1寄存器2.2 GYRO_CONFIG寄存器2.3 ACCEL_CONFIG寄存器2.4 PW…

到蒙古包了,这边天气-9度 很冷

【点我-这里送书】 本人详解 作者&#xff1a;王文峰&#xff0c;参加过 CSDN 2020年度博客之星&#xff0c;《Java王大师王天师》 公众号&#xff1a;JAVA开发王大师&#xff0c;专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生&#xff0c;期待你的…

lua脚本实现redis分布式锁(脚本解析)

文章目录 lua介绍lua基本语法redis执行lua脚本 - EVAL指令使用lua保证删除原子性 lua介绍 Lua 是一种轻量小巧的脚本语言&#xff0c;用标准C语言编写并以源代码形式开放&#xff0c; 其设计目的是为了嵌入应用程序中&#xff0c;从而为应用程序提供灵活的扩展和定制功能。 设…

(动手学习深度学习)第13章 计算机视觉---图像增广与微调

13.1 图像增广 总结 数据增广通过变形数据来获取多样性从而使得模型泛化性能更好常见图片增广包裹翻转、切割、变色。 图像增广代码实现

【开源三方库】Easyui:基于OpenAtom OpenHarmony ArkUI深度定制的组件框架

万冬阳 公司&#xff1a;中国科学院软件所 小组&#xff1a;知识体系工作组 简介 Easyui是一套基于ArkTS语言开发的轻量、可靠的移动端组件库&#xff0c;它是对OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09; ArkUI进行深度定制的组件框架。Easyui可扩…

C/C++特殊求和 2021年6月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C幻数求和 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C幻数求和 2021年6月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 如果一个数能够被7整除或者十进制表示中含有数字7&…

NVM安装使用

文章目录 简要说明下载nvm安装nvm使用说明使用nvm下载各个版本的node.js查看已经下载到本地的node有哪些切换到对应的node版本后 简要说明 当我们在项目开发时&#xff0c;我们接手别人的项目、是当时开发的项目使用的node版、找开源项目学习的时候开源项目要求的node版本。和…

【数据结构】线性表的链式存储结构

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 顺序存储结构的不足的解决办法 从上一节我们对顺序表的讨论中可见,线性表的顺序存储结构的特点是: 逻辑关系上相邻的两个元素在物理位置(内存)上也相邻,因此可以随机存取表中…

借PVE8.0的Debian 12系统配置一下NFS服务器

正文共&#xff1a;1234 字 16 图&#xff0c;预估阅读时间&#xff1a;2 分钟 前面我们介绍了基于Windows Server 2012 R2创建的共享NFS&#xff08;Network File System&#xff0c;网络文件系统&#xff09;存储&#xff08;Windows Server2012 R2搭建NFS服务器&#xff09;…

快速搭建开源分布式任务调度系统DolphinScheduler并远程访问

使用Docker部署开源分布式任务调度系统DolphinScheduler 文章目录 使用Docker部署开源分布式任务调度系统DolphinScheduler前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinSchedu…

移动医疗科技:开发互联网医院系统源码

在这个数字化时代&#xff0c;互联网医院系统成为了提供便捷、高效医疗服务的重要手段。本文将介绍利用移动医疗科技开发互联网医院系统的源码&#xff0c;为医疗行业的数字化转型提供有力支持。 智慧医疗、互联网医院这一类平台可以通过线上的形式进行部分医疗服务&#xff…

Python的版本如何查询?

要查询Python的版本&#xff0c;可以使用以下方法之一&#xff1a; 1.在命令行中使用python --version命令。这会显示安装在计算机上的Python解释器的版本号。 # Author : 小红牛 # 微信公众号&#xff1a;wdPython2.在Python脚本中使用import sys语句&#xff0c;然后打印sy…

P6入门:项目初始化1-项目详情介绍

前言 使用项目详细信息查看和编辑有关所选项目的详细信息&#xff0c;在项目创建完成后&#xff0c;初始化项目是一项非常重要的工作&#xff0c;涉及需要设置的内容包括项目名&#xff0c;ID,责任人&#xff0c;日历&#xff0c;预算&#xff0c;资金&#xff0c;分类码等等&…

视频剪辑教程:视频嵌套技巧深度解析,提升剪辑水平的捷径

在视频剪辑的世界里&#xff0c;视频嵌套是一项强大的技术&#xff0c;也是许多专业剪辑师提升剪辑水平的重要手段。通过巧妙地运用视频嵌套技巧&#xff0c;可以在视频中创造出丰富的视觉效果&#xff0c;让观众眼前一亮。简单来说&#xff0c;就是在同一个视频轨道上&#xf…