0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于Git教程解析

xCb1_yikoulinux 来源:一口Linux 作者:一口Linux 2022-04-27 14:54 次阅读

1 参考教程

☆Git官方文档

https://git-scm.com/book/zh/v2

☆ 廖雪峰的Git教程

https://www.liaoxuefeng.com/wiki/896043488029600

2.Git的作用

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

3.安装Git

3.1Linux 系统下安装

一般Linux系统都会自带git命令。

如果没有,使用如下命令安装即可:

sudoapt-getinstall git

3.2 Windows系统下安装

除官网下载安装程序外,一般还会下载小乌龟的图形界面客户端和语言扩展包。如下图:

c74875b0-c5de-11ec-bce3-dac502259ad0.png

安装完成后右键会出现如下几个选项(开始是英文):

c757abfc-c5de-11ec-bce3-dac502259ad0.png

在设置选项中更改成中文即可。

c7656008-c5de-11ec-bce3-dac502259ad0.png

点击网络选项,设置下图的SSH路径,找git的安装路径(即第一个软件的路径),根据自己实际修改。完成后点击确定即可。

c77808c0-c5de-11ec-bce3-dac502259ad0.png

上面SSH客户端路径请一定选择正确,注意是usr/bin下的ssh.exe

3.3 使用Gitbash终端

Git bash是windows下interwetten与威廉的赔率体系 Linux的终端,支持常用的linux命令,比如ls等。

c789d320-c5de-11ec-bce3-dac502259ad0.png

点击右键菜单中的GitBash Here选项,会弹出如下Gitbash界面。

c7a116e8-c5de-11ec-bce3-dac502259ad0.png

3.4 生成主机密钥

ssh-keygen-t rsa -C "xxxx@xx.com"

一路回车,直到命令执行结束。终端会提示生成密钥的路径。

c7ae557e-c5de-11ec-bce3-dac502259ad0.png

id_rsa.pub文件的内容即对外公钥,可配置到远程服务器中,配置完成后往远程服务器推送即可不用每次再输入用户名和密码。

c7bbc402-c5de-11ec-bce3-dac502259ad0.png

4.Git管理区域

4.1 区域划分

☆ 工作区

即我们新建git仓库后在电脑上看到的目录,此区域内文件改动完全由我们自己掌控,Git不进行备份管理,可以随时把新增工作区内容通过Git命令删除或者增加到暂存区。

☆ 暂存区

暂存区是个比较虚拟的概念,可以理解为工作区和版本库之间的过渡,当用户想简单备份工作区内容,但又不想做版本提交,就可以将工作区内容暂时存放到暂存区,此区域的内容可方便的还原回工作区,或者作为正式版本提交到版本库。

☆ 版本库

Git版本管理的核心,存储着每一个版本的备份。

☆ 远程库

远端服务器,即上文中提到的“中央服务器”,仅用来作为开发者之间的版本仓库同步使用。

5.Git命令

5.1 基础命令

配置用户信息 gitconfig --global user.name "zhangsan" gitconfig --global user.email "xxxx@xx.com" 配置的信息用作提交版本时标识提交者用户名和邮箱地址。 查看当前配置 gitconfig -l 初始化仓库 git init 将工作区内容添加到暂存区 git add 查看仓库当前的状态 gitstatus 查看文件修改 git diff

5.2 版本控制

c7d0b312-c5de-11ec-bce3-dac502259ad0.png

将暂存区的内容提交到版本库 gitcommit -m "版本修改信息" 将暂存区内容放回工作区 gitreset HEAD 将工作区内容丢掉 gitcheckout 查看当前版本以前的历史 git log 查看当前版本前后所有的历史 gitreflog 回退一个版本 gitreset --hard HEAD^ 回退到某个版本 gitreset --hard

5.3 分支管理

c7e094da-c5de-11ec-bce3-dac502259ad0.png

创建新的分支 gitcheckout -b dev相当于gitbranch dev + git checkout dev两个命令的集合 列出所有分支并用*标注当前分支 git branch 切换回name分支 git checkout 把name分支合并到当前分支 git merge 删除name的分支 git branch -d

分支管理参考图

c7ee4fc6-c5de-11ec-bce3-dac502259ad0.png

5.4 远程仓库 (常用代码托管平台)

☆ Github

开源项目的聚集地,世界最大的代码托管平台。很多著名的项目都在Github开源,比如Linux源码、Qt源码等。缺点:国内经常无法访问,速度比较慢。

☆ Gitlab

Gitlab支持公有仓库和免费的私有仓库,体验和Github类似,常用作搭建的企业内网代码托管平台。公有仓库国内经常无法访问,速度比较慢。

☆ 码云

国内代码托管的老大,一个账号最多可以创建1000个项目,不分公有和私有。速度非常快,体验较好。但是单文件大小不能超过100M。

☆ 相关命令

克隆远程仓库 gitclone <远程地址> 本地推送到远程 git pushorigin <分支名> 从远程拉取更新 git pull

☆ 配置别名

git config --global alias.st statusgit config --global alias.ci commitgit config --global alias.br branchgit config --global alias.ch checkout

6.TortoiseGit使用

6.1 操作演示

克隆项目

c82bf768-c5de-11ec-bce3-dac502259ad0.png

c839200a-c5de-11ec-bce3-dac502259ad0.png

撤销工作区修改

c84566a8-c5de-11ec-bce3-dac502259ad0.png

版本提交

c8608276-c5de-11ec-bce3-dac502259ad0.png

c86b8db0-c5de-11ec-bce3-dac502259ad0.png

拉取更新

c8844350-c5de-11ec-bce3-dac502259ad0.png

c88f63e8-c5de-11ec-bce3-dac502259ad0.png

c8844350-c5de-11ec-bce3-dac502259ad0.png

推送更新

c8aa8db2-c5de-11ec-bce3-dac502259ad0.png

end

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制系统
    +关注

    关注

    41

    文章

    6618

    浏览量

    110605
  • Git
    Git
    +关注

    关注

    0

    文章

    199

    浏览量

    15760

原文标题:Git教程,这一篇就够了

文章出处:【微信号:yikoulinux,微信公众号:一口Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Flexus X 实例 C#/.Net Core 结合(git 代码管理、docker 自定义镜像)快速发布部署 - 让你的项目飞起来~

    前言 ���云端部署新体验,C# Web API 遇上 Git Docker,828 B2B 企业节特惠来袭!Flexus X 实例,为您的 C#应用提供强大支撑,结合 Git 版本控制
    的头像 发表于 12-25 21:15 91次阅读
    Flexus X 实例 C#/.Net Core 结合(<b class='flag-5'>git</b> 代码管理、docker 自定义镜像)快速发布部署 - 让你的项目飞起来~

    ZCAN PRO解析的DBC Singal 起始位与XNET解析的起始位不同;解析的信号不符合大端逻辑

    上图中的DBC文件使用记事本打开,Data_Field信号,起始位为23,长度为48,大端方式存储;(按照这个方式存储,明显已经溢出) 上图为该信号在ZCANPRO软件中打开,解析的起始位为23
    发表于 10-18 13:53

    ESP-BOX的Git上的PCB文档用AD打不开,说文件损坏怎么解决?

    ESP-BOX的Git上的PCB文档用AD打不开,说文件损坏,能否提供一下AD版本的layout供参考?非常感谢!!!
    发表于 06-27 06:33

    打开esp-idf的任意一个component时,vscode会自动导入该component的git仓库,怎么解决?

    当我打开esp-idf 的任意一个component时,vscode会自动导入该component的git仓库,导致vscode的源码管理非常拥挤,请问这有什么办法解决吗?还是我vscode设置不对导致? 希望大家能指导指导,感谢!
    发表于 06-21 07:39

    ubuntu下的vscode插件安装idf时,总是找不到git,为什么?

    总是提示:Git is not found in current environment 但是我已经在setting.json下设置了\"git.path\": \"/bin/git\" 同行,命令行里查看
    发表于 06-21 07:16

    git还是用图形界面安装idf-tools总是失败,这是什么问题?

    无论是用git还是用图形界面安装idf-tools总是失败,这是什么问题?
    发表于 06-19 07:03

    通过git命令获取ESP8266_RTOS_SDK失败如何解决?

    本人使用的硬件平台为esp8266,开发环境为ubuntu22.04。在通过git命令获取ESP8266_RTOS_SDK失败,通过上网搜索尝试了很多方法无效。具体情况如下
    发表于 06-07 07:26

    请问下使用IDF怎么做用git做版本控制?

    请问下使用IDF怎么做用git做版本控制?是保存自己应用部分的代码还是整个SDK都要保存,但是整个框架都是官方下的,有没必要保存,求各位大神告知下你们怎么处理的。
    发表于 06-06 07:15

    Git发布新版本 修补五处安全漏洞 包含严重远程代码执行风险

    CVE-2024-32002漏洞的严重性在于,黑客可通过创建特定的Git仓库子模块,诱骗Git将文件写入.git/目录,而非子模块的工作树。如此一来,攻击者便能在克隆过程中植入恶意脚本,用户几乎无法察觉。
    的头像 发表于 05-31 10:09 606次阅读

    求助,关于串口数据解析疑问求解

    现在手上有一个串口模块要开发,比较复杂, 功能:接收各种类型不定长度的 字符串,然后解析做出反馈 字符串基本规格: 单条命令 : CMD(X,Y,\'ABC或者中文字符不定长\',W
    发表于 04-29 06:34

    飞凌ElfBoard ELF 1板卡-ubuntu18.04 git安装及基本使用

    1.安装gitsudo apt-get install git 2.git初始化git init 3.设置用户名和邮箱git config --global user.name \"你
    发表于 03-21 16:23

    XML在HarmonyOS中的生成,解析与转换(下)

    一、XML 解析 对于以 XML 作为载体传递的数据,实际使用中需要对相关的节点进行解析,一般包括解析 XML 标签和标签值、解析 XML 属性和属性值、
    的头像 发表于 02-18 10:07 740次阅读

    蓝牙 | 软件:Git管理高通的ChipCode项目

    最近发现大家在高通chipcode网站上下载不了代码,小编一直使用git的方式获取新版本代码,没有遇到什么阻碍。于是小编到新主机上尝试下载代码的压缩包和git代码,都遇到了问题。由于压缩包是高通自己
    的头像 发表于 01-26 08:29 400次阅读
    蓝牙 | 软件:<b class='flag-5'>Git</b>管理高通的ChipCode项目

    克服PLC编程的难题—基于Git的软件

    Git是一种分布式版本控制系统,它可以记录文件的修改历史和版本变化,并可以支持多人协同开发。
    的头像 发表于 01-22 09:30 963次阅读
    克服PLC编程的难题—基于<b class='flag-5'>Git</b>的软件

    Git开发者关注内存安全问题,探讨引入Rust语言

    根据最新披露的邮件讨论,Git开发团队热议在Git项目中引入Rust的可行性。作为一种开源的分布式代码版本管理工具,广泛运用于各种开发项目。尽管现在Git项目主要以C与Python为主要开发语言,但探讨显示,引入Rust能显著降
    的头像 发表于 01-15 14:23 625次阅读
    <b class='flag-5'>Git</b>开发者关注内存安全问题,探讨引入Rust语言