快速入门git(收藏篇)

news2024/11/24 0:24:40

大致总结:
本地仓库要先去github注册,并通过github的验证。于是本地仓库的文件均可通过协议传输至github任意一个仓库。本地文件要先传到本地仓库,由本地仓库传输至远程github仓库。

在详细学习git之前,我们先来看看Git和svn之间的区别是啥,以此来进一步对git的认知。
Git 与 SVN 区别点:
1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

简单点理解,svn是我们需要把文件更新到所在的地址。但是git的话是借助分支的上传合并来进行版本的更新。
本文的目的是手把手教你学会使用git来管理自己的项目。
把一些常用的git操作总结在此:
git init #初始化本地仓库
git add #提交文件至本地仓库分支,默认master(确切的说,提交到本地仓库的暂存区目录树)
git commit -m “描述“ #文件更新到本地仓库的对象库,此时分支master指向暂存区的目录树,直白点说,此时的master分支上才追踪到新增的文件,如果没有commit,也是没有的。
git rm --cached # 把文件从本地仓库暂存区进行删除
git branch #查看当前分支(会显示所有分支,有星标的就是当前所在分支)
git branch <branch_name> #新增分支
git checkout <branch_name> #切换到该分支
git status #查看当前分支的状态
git branch -d <branch_name> #删除分支
git merge <branch_name> #将分支合并到主分支上去
git pull origin master --allow-unrelated-histories
git remote add origin git@github.com:Allen-1991/test.git #添加远程仓库并命名为origin
git push -u origin master #将master的分支提交到远程origin仓库

下面是具体的操作流程介绍,以github为例。

1、注册github账户
https://github.com/
在这里插入图片描述2、建立本地仓库与github仓库的连接
2.1生成key
ssh-keygen -t rsa -C “allenshnu@163.com”
在这里插入图片描述
2.2 回到github填写生成的key
–回到 github 上,进入 Account => Settings(账户配置)
在这里插入图片描述
–把刚才生成的key填写进来(id_rsa.pub文件里的内容)
在这里插入图片描述
–输入github的用户密码即可,从而建立了本地仓库跟github仓库数据传输的协议。
–再回到cmd,验证下建立连接是否成功
在这里插入图片描述
以上说明我们连接Github成功!
–再回到github创建新的仓库,创建名为test的仓库
在这里插入图片描述
在这里插入图片描述
仓库test的url (遵从SSH或者HTTP协议)
在这里插入图片描述
以上信息告诉我们可以从这个仓库克隆出新的仓库,也可以把本地仓库的内容推送到GitHub仓库。
3、本地建立项目(仓库),推送至github托管
–项目初始化
Git init
在这里插入图片描述
会在目录产生一个.git的目录(git的版本库),里面存放着本地仓库的配置信息,负责跟踪管理版本库,其中的index文件也是git的暂存区。(如下图)
在这里插入图片描述
但是一般我们在D:\Ellen\project目录下是看不到的,隐藏的
在这里插入图片描述
–在project目录下生成文件并上传github
–新建test.py文件
在这里插入图片描述
git add test.py #添加文件到暂存区
git commit -m “Hello world” #提交并备注文件信息(备注的信息github上会看到)
在这里插入图片描述
git remote add origin git@github.com:Allen-1991/test.git #添加远程仓库,命名为origin
git push -u origin master #将master的分支提交到远程origin仓库
在这里插入图片描述
这样代表提交文件到github成功!回到github看看
在这里插入图片描述
4、git的基本知识
(了解了上述的操作,我们来插入一下,git的基本知识)
–了解Git工作区、暂存区和版本库的概念
图一:
在这里插入图片描述
图二:
在这里插入图片描述
–以上述的操作来理解一下这里面的工作机制。
工作区:projec/目录
版本库(或者是本地仓库u):.git/ 目录
暂存区(stage):.git/index 文件
对象库:./git/ objects/ 目录
“master” 的是 master 分支所代表的目录树
“HEAD” 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换

–git add :当工作区新增一个文件,并执行git add时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中
–git commit :执行git commit时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
–git reset HEAD: 暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响(意思就是恢复远程的版本)
– git rm --cached : 会直接从暂存区删除文件,工作区则不做出改变
–下面试着工作区新增一个文件提交并撤回删除:
在这里插入图片描述
–git checkout . 或者git checkout – : 会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动
–git checkout HEAD . 或者 git checkout HEAD : 会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
5、git分支管理
在这里插入图片描述
在这里插入图片描述
此时,master分支的文件有:README.txt、test.txt
Testing分支目录只有README.txt文件,因为在创建新的分支的时候,跟当时的master分支内容一致。
再次用下面的例子感受下分支。
在这里插入图片描述
此时还在master分支上,master和master1分支都含有test1.txt。
在这里插入图片描述
此时,在分支master上,提交新建的test2.txt,master和master2含有文件test1.txt和test2.txt,而分支master1只含有文件test1.txt。
在这里插入图片描述
此时,又在分支master上,提交新建的test3.txt,master含有文件test1.txt、test2.txt、test3.txt,而master1仍只含有test1.txt,master2含有test1.txt、test2.txt。
在这里插入图片描述
此时,把master2合并到master1上,master1和master2都含有文件test1.txt和test2.txt。
所以,通过上面的两个例子,我们明白了分支的作用,以及分支之间的联系又是怎样的。上面分支的图看着更是明白了,分支可以帮助我们从开发的主线上分割出来单独开发。
6、合并分支
Master分支含有test.txt文件,内容为”master”
在这里插入图片描述
然后新建分支master1,修改tets.txt内容为”master1”,新增文件master1.txt,提交。
在这里插入图片描述
切换回分支master,新增master.txt文件,提交。
在这里插入图片描述
此时,在分支master上,切换至分支master1,含有文件test.txt、master1.txt。切换回分支master,含有文件test.txt、master.txt。(其中test.txt内容不一致)
将分支master1合并到master上,此时,master分支上的test.txt内容变为”master1”。
在这里插入图片描述
7、本地文件上传github
在这里插入图片描述
上传的时候,远程仓库中有着本地仓库没有的文件,及导致本地仓库和远程有不同的开始点,也就是两个仓库没有共同的 commit 出现的无法提交。
在这里插入图片描述
所以,应该先拉取远程仓库的文件到本地后,在此基础上再修改再提交至远程仓库。
–git pull origin master --allow-unrelated-histories
8、如何删除github上的仓库
8.1点击进入要删除的仓库
在这里插入图片描述
8.2、点击setting滑到最下方的Danger Zone,Delete this repository
在这里插入图片描述

https://www.runoob.com/git/git-remote-repo.html
https://blog.csdn.net/liulei952413829/article/details/117553977?spm=1001.2014.3001.5502

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统集成项目管理工程师 笔记(第七章:项目范围管理)

文章目录 7.1.1 项目范围管理的含义及作用7.1.2 项目范围管理的主要过程&#xff08;6个&#xff09; 7.2 编制范围管理计划和范围说明书 2687.2.1 编制范围管理计划过程所用的工具与技术7.2.2 编制范围管理计划过程的输入、输出 7.3 收集需求 2717.3.1 收集需求过程的工具与技…

java 网络编程总结

目录 一、拾枝杂谈 1.网络通信 : 2.网络 : 3.IP : 4.IPv4的ip地址分类 : 5.域名和端口 : 6.网络协议 : 二、网络编程 1.InetAddress : 1 常用方法 : 2 代码演示 : 2.Socket : 1 概述 : 2 代码演示 : eg1 : 客户端连接服务端 eg2 : 结束标记 eg3 : 网络传输文件…

Linux设置进程自启动

systemd学习 http://www.jinbuguo.com/systemd/systemctl.html https://blog.csdn.net/sinat_35815559/article/details/102867290 常用命令 立即启动一个服务&#xff1a; systemctl start xxx.service立即停止一个服务&#xff1a; systemctl stop xxx.service重启一个服…

跌倒检测和识别4:C++实现跌倒检测(含源码,可实时跌倒检测)

跌倒检测和识别4&#xff1a;C实现跌倒检测(含源码&#xff0c;可实时跌倒检测) 目录 跌倒检测和识别4&#xff1a;C实现跌倒检测(含源码&#xff0c;可实时跌倒检测) 1. 前言 2. 跌倒检测模型&#xff08;YOLOv5&#xff09; &#xff08;1&#xff09;跌倒检测模型训练 …

第14届蓝桥杯 | 冶炼金属

作者&#xff1a;指针不指南吗 专栏&#xff1a;第14届蓝桥杯真题 &#x1f43e;慢慢来&#xff0c;慢慢来&#x1f43e; 文章目录 题目代码摸索第一次 AC 5/10第二次 AC 100% 反思 题目 链接&#xff1a; 4956. 冶炼金属 - AcWing题库 小蓝有一个神奇的炉子用于将普通金属 O …

【LeetCode】数据结构刷题(2)[查找链表的中间节点]

【LeetCode】数据结构刷题&#xff08;2&#xff09; 1.题目来源2.题目描述3.解题思路4.代码展示5.类似题目练习 所属专栏&#xff1a;玩转数据结构题型 博主首页&#xff1a;初阳785 代码托管&#xff1a;chuyang785 感谢大家的支持&#xff0c;您的点赞和关注是对我最大的支持…

自动驾驶方案及相关对标

华为&#xff1a; 2021年4月18日&#xff0c;在华为智能汽车解决方案BU新品发布会上&#xff0c;华为智能汽车解决方案BU总裁王军表示&#xff0c;华为要持续加大对汽车行业的投入&#xff0c;今年在研发上的投资将达到10亿美元&#xff0c;未来每年保持30%左右增长&#xff0…

three.js的着色器(巨详细 初学者 大白话)

three.js就不过多介绍了 可以看另一篇文章 总结就是场景 相机 和 渲染器 学起来 也比较轻松 后来看到了着色器 给我整懵乐了 一会一个API 一会一个API 都没见过 然后就一点点去学习 真的是费了好大劲了 需要知道很多新东西 才能初步知道和使用着色器 当然如果只是简单的使…

docker-harbor私有仓库的部署与管理

目录 Harbor Harbor介绍 Harbor的特性 Harbor的构成 部署Harbor 搭建本地私有仓库 Docker容器的重启策略 部署Docker-compose服务 部署Harbor服务 关于Harbor.cfg配置文件中两类参数 启动Harbor 查看 Harbor 启动镜像 创建一个新项目 在其他客户端上传镜像 维护管…

如何创建 2023 年营销日历(内含免费模板和示例)

沟通、文案撰写、社媒营销、点击付费广告、事件营销和搜索引擎排名优化有什么共同点&#xff1f; 它们都属于营销部门的工作范畴&#xff0c;而且很可能是围绕着同一个日程表进行工作排期。 你的营销团队比你想象的要大&#xff0c;当你考虑跨职能项目和团队成员在你整体战略…

ImageJ 用户手册——第四部分(ImageJ用户界面)

ImageJ 用户手册——第四部分&#xff08;ImageJ用户界面&#xff09; ImageJ用户界面工具栏&#xff08;Toolbar&#xff09;状态栏进度条19. 工具19.1 区域选择工具19.1.1 矩形选择工具19.1.2 圆角矩形选择工具19.1.3 圆形选择工具19.1.4 椭圆选择工具19.1.5 笔刷选择工具19.…

内网渗透基础-域环境搭建

一、环境准备 1.1虚拟机安装 Mac环境&#xff1a; vmware fusion&#xff1b;parallels desktop。 windows环境&#xff1a; vmware&#xff1b;virtualbox; 有习惯用其他软件的也都一样的&#xff0c;下载安装可以找百度教程。 1.2虚拟机三种网络配置模式 桥接模式&am…

塔望3W消费战略全案丨阳澄湖牌大闸蟹:承诺就是价值,打响官方第一枪

阳澄湖牌 大闸蟹 客户&#xff1a;苏州市阳澄湖大闸蟹营销有限公司 品牌&#xff1a;阳澄湖/阳澄湖牌 服务&#xff1a;3W消费战略 品牌全案 项目背景 苏州市阳澄湖大闸蟹营销有限公司是由苏州市相城区阳澄湖大闸蟹集团公司、苏州市阳澄湖现代农业产业园特种水产养殖有限公…

Springboot整合elasticsearch

​ 前言 elasticsearch基本介绍&#xff0c;这篇文章介绍了elasticsearch安装和使用。下面根据网上查来的各种资料&#xff0c;总结如何在springboot中使用elasticsearch。 文章中用es代替elasticsearch。 依赖 springboot版本是2.0&#xff0c;es版本用的是7.6.2。不同的…

专业做护眼灯的有哪些品牌?盘点专业护眼灯品牌排行

护眼灯是家庭照明必备的工具&#xff0c;专业做护眼灯的却不多&#xff0c;许多家长找不到合适的护眼灯&#xff0c;我就根据标准GB/T 9473-2017《读写作业台灯性能要求》&#xff0c;筛选出五款合适国人使用的护眼灯。 TOP1、南卡护眼台灯Pro 光源舒适度&#xff1a;❤❤❤❤…

电子工程有哪些SCI期刊推荐? - 易智编译EaseEditing

以下是电子工程领域的SCI期刊推荐&#xff1a; IEEE Transactions on Electron Devices&#xff1a; 该期刊是IEEE出版社的顶级期刊&#xff0c;涵盖电子学、固态电子学、电子器件、材料科学等多个领域。 IEEE Transactions on Industrial Electronics&#xff1a; 该期刊是I…

ChatGPT写21个程序,16个有漏洞:离取代程序员还远着呢!

一、ChatGPT 生成的代码有多安全&#xff1f; 近年来&#xff0c;大型语言模型推动人工智能领域取得了巨大的进步。其中&#xff0c;OpenAI 打造的 ChatGPT 甫一亮相&#xff0c;就凭借出色的性能震惊全球。ChatGPT 不仅能够处理普通文本&#xff0c;还能将自然语言翻译成代码…

Linux嵌入式uboot使用tftp网络启动加载zImage、设备树

文章目录 一、前言二、Linux U-boot 相关命令&#xff08;1&#xff09;help 命令&#xff08;2&#xff09;printenv 命令&#xff08;3&#xff09;setenv 函数&#xff08;4&#xff09;saveenv 函数 三、tftp启动linux内核步骤&#xff08;1&#xff09;进入u-boot模式&…

使用chatgpt探索SQL注入

今天尝试使用chatgpt尝试探讨咨询一下SQL注入的问题以及如何解决。 首先问的是“作为一个安全工作人员&#xff0c;写一篇关于Java SQL注入以及如何预防的文章&#xff0c;包含所有使用SQL可能存在注入的情况” 结果&#xff0c;结果就是没有等到结果&#xff0c;直接出错了。…

数百家数科公司齐聚用友BIP技术大会,共享企业数智化领先实践

4月19日&#xff5e;4月21日&#xff0c;由用友公司主办的“2023用友BIP技术大会“在用友产业园&#xff08;北京&#xff09;盛大召开&#xff0c;用友介绍了更懂企业业务的用友BIP-iuap平台&#xff0c;并发布了全面数智化能力体系&#xff0c;助力企业升级数智化底座&#x…