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下模拟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

    文章

    6671

    浏览量

    110972
  • Git
    Git
    +关注

    关注

    0

    文章

    201

    浏览量

    15841

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

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

收藏 人收藏

    评论

    相关推荐

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-移植前准备之git管理内核源码

    我们前边已经介绍过Git工具,是一个非常实用的代码管理工具。如果验证编译出的内核能够正常启动,就可以将源码用git工具管理起来。可以清楚的了解源码改动记录。如果不小心把源码改乱了还可以进行版本
    发表于 01-23 10:51

    飞凌嵌入式ElfBoard ELF 1板卡-移植前准备之git管理内核源码

    我们前边已经介绍过Git工具,是一个非常实用的代码管理工具。如果验证编译出的内核能够正常启动,就可以将源码用git工具管理起来。可以清楚的了解源码改动记录。如果不小心把源码改乱了还可以进行版本
    发表于 01-22 10:39

    飞凌嵌入式ElfBoard ELF 1板卡-git管理源码之git安装和使用

    git是什么?git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件
    发表于 01-14 09:08

    【教程】DNS域名解析服务systemd-resolved使用指南

    1.关于DNS解析服务DNS(DomainNameSystem),即域名系统。一句话总结DNS解析服务功能就是,将域名转换为IP地址。DNS解析服务过程中有如下几个角色参与:•待
    的头像 发表于 01-09 19:34 283次阅读
    【教程】DNS域名<b class='flag-5'>解析</b>服务systemd-resolved使用指南

    云服务器 Flexus X 实例:部署 Gitea,拥有自己的 Git 仓库,管理本地代码

    本篇文章通过部署 Gitea,实现本地 Git 仓库,真实体验了“云服务器 Flexus X 实例”,深感其卓越性能与灵活性。这款实例以其六倍于常的强劲算力,搭配旗舰级的操作体验,广泛适用于高科技
    的头像 发表于 01-07 16:59 149次阅读
    云服务器 Flexus X 实例:部署 Gitea,拥有自己的 <b class='flag-5'>Git</b> 仓库,管理本地代码

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

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

    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 672次阅读

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

    现在手上有一个串口模块要开发,比较复杂, 功能:接收各种类型不定长度的 字符串,然后解析做出反馈 字符串基本规格: 单条命令 : 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