【Git】深入了解Git及其常用命令

🥳🥳Welcome Huihui's Code World ! !🥳🥳

接下来看看由辉辉所写的关于Git的相关操作吧 

目录

🥳🥳Welcome Huihui's Code World ! !🥳🥳

 一.Git是什么

二.SVN和Git的区别

三.Git的常用命令

1.Git的详细安装步骤

①下载Git

②安装

​         ③注册/登录

④创建仓库

⑤创建文件夹用于存放项目

2.使用步骤及命令

 Git 全局设置

创建 git 仓库

将文件交于git管理

创建文件

将文件给git管理

将文件上传到本地仓库

将文件上传到远程仓库

绑定远程仓库

将文件推送到远程仓库

将文件从远程仓库中下载

四.Git命令背后的原理


 一.Git是什么

        Git是一个分布式版本控制系统,它被广泛应用于软件开发中,用于跟踪文件的改变以及协调多人在同一个项目上的工作。通过Git,开发人员可以有效地管理和控制代码的版本,以便更好地协作、追踪变更、解决冲突,并且可以轻松地回溯到任何历史版本。

        与集中式版本控制系统不同,Git的分布式架构使得每个开发者都拥有一份完整的代码仓库,可以独立地进行工作和提交修改。这种特性使得Git在处理大型项目和远程团队协作方面表现出色。

二.SVN和Git的区别

  • 集中式vs分布式:

    • SVN是一种集中式版本控制系统,所有的代码都存储在中央服务器上,开发者需要从中央服务器检出代码,然后提交修改
    • Git是一种分布式版本控制系统,每个开发者都拥有完整的代码仓库,可以独立进行工作和提交修改,无需依赖中央服务器。

下面这张图也许能够更加清晰的看出它们的区别

  • 历史记录存储方式:

    • Git将历史记录作为文件内容的快照来保存,这使得Git能够更高效地处理分支和合并。
    • SVN则是按文件的变化来存储历史记录,这可能导致在处理大型项目或者频繁的分支合并时性能下降。
  • 分支和合并:

    • 在Git中,分支和合并是非常轻量级且强大的,开发者可以轻松地创建、合并和管理分支,因此使用分支进行并行开发是很常见的
    • SVN的分支和合并相对复杂,需要谨慎操作,并且通常需要与中央服务器进行交互。
  • 工作方式

三.Git的常用命令

1.Git的详细安装步骤

①下载Git

官网下载地址icon-default.png?t=N7T8https://git-scm.com/downloads

②安装

傻瓜式的下一步下一步,这里就不过多讲述了

③注册/登录

④创建仓库

⑤创建文件夹用于存放项目

2.使用步骤及命令

 在了解命令之前,我们也可以先熟悉一下git的工作流程,下面这张图足够我们熟悉使用git的流程了,大家可以先看这张图,在去看下方的命令操作

 Git 全局设置

git config --global user.name "wanghui19"
git config --global user.email "13682107+wanghui19@user.noreply.gitee.com"

创建 git 仓库

mkdir huihui

将文件交于git管理

git init

创建文件

touch README.md

将文件给git管理

git aad .
//这个点是代表所有文件的意思 后面也可以直接跟上具体的文件名

将文件上传到本地仓库

git commit -m "对于上传的文件的备注"

将文件上传到远程仓库

绑定远程仓库
git remote add origin https://gitee.com/wanghui19/huihui.git
将文件推送到远程仓库
git push -u origin "master"

将文件从远程仓库中下载

git clone +仓库的远程地址

四.Git命令背后的原理

1.git init

  • 这个命令用于初始化一个新的Git仓库。在背后,Git会在当前目录下创建一个名为.git的子目录,用来存储版本库的相关信息,包括对象数据库、配置文件等

2.git add

  • 这个命令用于将文件的当前状态添加到暂存区(Index)。在背后,Git会更新暂存区域的内容,将待提交的更改暂时保存起来。

3.git commit

  • 这个命令用于将暂存区的内容提交到版本库中。在背后,Git将暂存区中的内容作为一个新的快照存储到版本库中,同时记录提交者、提交时间等相关信息。

4.git branch / git checkout / git merge

  • 这些命令用于分支的创建、切换和合并操作。在背后,Git通过指针的方式管理分支,创建分支只是简单地增加一个新的指针,切换分支只是将HEAD指针指向不同的分支,而合并操作则会将不同分支的提交合并到一起。

5.git pull / git push

  • 这些命令用于从远程仓库获取更新并合并到本地分支,以及将本地提交推送到远程仓库。在背后,Git通过远程引用(remote reference)来实现远程操作,它们是指向远程仓库的引用,类似于本地分支的指针

好啦,今天的分享就到这了,希望能够帮到你呢!😊😊 

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

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

相关文章

二十、泛型(5)

本章概要 边界通配符 编译器有多聪明逆变无界通配符捕获转换 边界 边界(bounds)在本章的前面进行了简要介绍。边界允许我们对泛型使用的参数类型施加约束。尽管这可以强制执行有关应用了泛型类型的规则,但潜在的更重要的效果是我们可以在…

【C++】开源:rapidjson数据解析库配置与使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍rapidjson数据解析库配置与使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&…

VS Code+DevChat助力非专业开发也能玩转代码编程

一、前言 偶然间网上瞎逛,看到DevChat 发布了一款 VS Code 插件,可提供类似chatgpt一样的“一站式 AI 辅助编程”体验。据说, DevChat 直接对接 GPT-4 还让免费用,目前免费注册收邮件即可获取key,再也不用麻烦的外部手…

web3 从redux中拿出所有已完成订单 并渲染到对应的Table列表中

上文web3 React dapp项目通过事件从区块链中拿到 已取消 已完成 和所有的订单数据 并存入redux中 中 我们已经从 区块中拿到了自己的订单 然后 我们恢复一下上文的环境 ganache ganache -d然后 登一下 MetaMask 然后 用我们的项目 发布一下合约 truffle migrate --reset然后…

使用Streamlit创建AutoGen用户界面

AutoGen作为一个最大化LLM(如GPT-4)能力的框架而脱颖而出。由微软研究院开发的AutoGen通过提供一种自动化、优化和编排工作流的方法,简化了复杂的、基于多代理llm的应用程序的创建。我们在以前的文章中也有过介绍,你可以与许多GPT交谈,并且GP…

STM32独立看门狗(IWDG)溢出时间计算

什么是IWDG? 独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。 IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 从上图我们可以看出IWDG的时…

每日一练 | 华为认证真题练习Day127

1、如图所示,关于OSPF的拓扑和配置,下列说法中正确的是()。 A. R1与R2相比,R2更有机会成为DR,因为它的接口DR优先级值较小 B. 只要把R1的接口网络类型恢复为默认的广播类型,R1和R2即可建立稳定…

Netty入门指南之NIO 粘包与半包

作者简介:☕️大家好,我是Aomsir,一个爱折腾的开发者! 个人主页:Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏:Netty应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言问题产…

xcode SDK does not contain ‘libarclite‘

SDK does not contain libarclite at the path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a; try increasing the minimum deployment target解决方法 iOS13以上

多语言翻译软件 Mate Translate mac中文版特色功能

Mate Translate for Mac是一款多语言翻译软件,Mate Translate mac可以帮你翻译超过100种语言的单词和短语,使用文本到语音转换,并浏览历史上已经完成的翻译。你还可以使用Control S在弹出窗口中快速交换语言。 Mate Translate Mac版特色功能…

由于flutter_app依赖于flutter_swiper>=0.0.2,不支持零安全,版本解决失败。

参考 dart3.0使用flutter_swiper报错记录 flutter_swiper package - All Versions从官网的信息可以看到 Dart3版本不兼容 最小兼容的Dart SDK版本需要2.0 Flutter SDK 版本列表Flutter SDK 版本列表 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 说明:因…

骨传导运动蓝牙耳机推荐,这五款骨传导耳机不要错过!

骨传导耳机在这两年在运动圈中非常火热,相比传统耳机,骨传导耳机使用时开放双耳,不堵塞耳朵,解决了入耳式耳机佩戴的不适感。同时,也避免了戴耳机运动时耳内出汗带来的一系列卫生和健康问题。最关键的是通过耳骨传声&a…

汽车标定技术(八)--MPC57xx是如何支持标定的页切换

目录 1.页切换的概念 1.1 标定常量的理解 1.2 页切换 2.MPC57xx的Overlay模块 3.小结 1.页切换的概念 在汽车标定测量中,有一个概念我想很多人都听过,但是实际上在项目里没有用到过,那就是今天要讲的页切换概念。在讲页切换的时候&#…

高防CDN与高防服务器:谁更胜一筹?

在当今数字化世界中,网络安全对于保护网站和应用程序至关重要。在这一背景下,高防CDN和高防服务器是两种流行的解决方案,用于应对不同类型的网络攻击。本文将分析高防CDN是否能够替代高防服务器,以及它们各自的优势和限制。 高防C…

海思SD3403/SS928开发板 开发记录二: 设置网络 telnet连接开发板

1.设置网络 设置桥接网络 并修改虚拟机IP网段 问题1.参照前一篇博客 2.ping 测试 主机 虚拟机 板端 相互通信 3.telnet 登录板端

《泰山众筹火爆全网,小额投资也能成就泰山伟业》

众筹模式好做吗?我们可以看到电商行业内最先吃螃蟹的那几个众筹平台结局都不大体面。不是平台操盘手被抓,就是平台崩盘,总之,传统的众筹卖货模式的风险性已经深植人心。 众筹卖货真就那么难玩吗?其实并非如此&#xff…

RFID电力资产全周期智能化管理应用解决方案

电力行业需求 国家电网提出了建设“泛在电力物联网”的计划,旨在利用现代信息技术和先进通信技术,实现电力系统各环节的万物互联,构建一个具备全面感知、高效处理和便捷灵活特征的智慧服务系统,其中,重点方向之一是围…

【数据结构】链表经典OJ题,常见几类题型(一)

目录 题型一:反转单链表思路解析OJ题实例解题代码 题型二:快慢指针思路解析OJ题实例解题代码 两类题型的结合 题型一:反转单链表 思路解析 反转一个链表主要是想让第一个节点指向NULL,第二个节点指向第一个,以此类推。…

电影《二手杰作》观后感

上周看了电影《二手杰作》,在看电影的时候,自己感觉其实多少有些文艺范,或者有些尴尬的,但是在电影里还好,不过整个故事看下来,多少有点代入感,不多但还是有点。 故事情节,比较简单&#xff0c…

一文带您了解云渲染

很多刚刚接触云渲染的网友可能还不太了解云渲染,不知道云渲染是什么,不知道如何选择云渲染,不知道云渲染怎么收费,今天小编归纳总结了一些网友比较关心的问题,在本文中一一为大家解答。 云渲染是什么? 云…