Git 快速入门

在客户端操作之前,需要安装git,可以查看连接→→git的下载安装

一、客户端操作

1.1 界面说明

这边有三个选项:

Clone a repository from the Internet...

从互联网复制仓库到本地。

由于Git是一个分布式版本控制软件,中央服务器会创建资源仓库,本地也有一个资源仓库。将中央服务器的仓库拷贝到本地的操作叫克隆。

Create a New Repositiry on your hard drive...

在本地创建一个新的仓库。 

Add an Existing Repository from your hard drive...

如果当前存在仓库,将本地的仓库导入到当前工具当中。

1.2 创建仓库

填写完仓库名称、路径,创建仓库。

 1.3 移除仓库

从软件中移除

从git窗口中移除,但该文件夹还依然存在。可以恢复。

从系统中移除

文件夹被删除。

1.4 文件创建

在当前仓库的目录下创建文件,就可以被动态识别到。 但此时的文件并不是存储在仓库中。

1.5 分支branch

由于Git是一个分布式的版本控制软件,所以用户在作业提交的时候,需要定位到每一次提交的版本,且不同的作业之间可能存在冲突。为了解决这个问题,Git提供了分支branch操作。

分支相当于提供了一个副本,不同的用户针对不同的副本进行操作。不同的分支可以进行合并,如果存在作业之间的冲突,那么只需要在最后做一次处理就可以。

任务提交时文件冲突提示: 

 

1.6 README & IGNORE

readme:在初始化仓库的时候增加 readme 文件

git工具有比对功能,新增文件会自动识别,图片、word文档、压缩包等无法进行比对,所以git软件本质上是用于代码文件的版本控制。git可以用来保存word文档,只是没有自动比对功能。

 忽略备份文件,可以用于忽略本地的配置文件。

 1.7 文件图标和比对

比对功能:

-0:旧的文件没有内容;

+1:新的内容增加了1行。

-1:旧的文件为第一行;

+2:新的文件第一行,第二行

 

 二、GitHub远程仓库

 

 登录成功之后会进入到如下页面:

 填写完仓库基本信息后,得到当前仓库。远程操作和客户端操作基本一致。

远程仓库内容下载到本地。 File -> Options -> Sign in 就可以关联到客户端工具。

 需要将仓库的内容下载到本地,可以选择 File -> Clone repositiry,相当于下载的操作。

 本地仓库中增加文件之后,远程仓库里并没有相应文件,选择 Push 推送,将当前文件推送到远程仓库当中。 

 三、gitee

GitHub由于是国外的网站,访问较慢、且容易出现访问中断、访问延迟等,我们可以使用国内第三方代码托管平台 gitee。和 GitHub 界面大同小异,新建一个远程仓库。

 远程仓库下载到本地:

打开本地仓库,选择 File -> Clone repositiry -> URL ,将地址复制到里面。

 四、Git 集成

在 GitHub 中共享项目

 配置完成后,就可以将当前项目发送到远程仓库。在发送之前,需要在本地仓库中添加如下内容:

 将文件提交到本地仓库:

 commit:将文件提交到本地仓库

commit and push:将文件提交到本地仓库后,再上传到 GitHub 仓库

 将远程仓库的文件同步到本地:

fetch - 抓取;pull - 合并

 git 拉取远程仓库代码:

 在 Gitee 中共享项目

安装 gitee插件

 其他操作和 GitHub 一样

 版本号

git 会把每次提交记录下来,形成历史记录。每次的提交 git 软件都会生成一个版本号,是40位长度的16进制数字字符串。

在 Git 中,版本号是git根据当前提交内容采用了一种特殊加密函数算法 SHA-1(40位)。由于 git的版本库可能会有多个,但版本号是针对某一个库的,就意味着每一个库中会有一个版本号,但git可以把多个版本库合并成一个库,在合并的过程中,不同库中的相同的版本号合并后会产生冲突。

但如果采用加密算法SHA-1,版本号基本不可能重复。

 另外,由于长度有40位,所以也可以用于定位仓库中的文件位置(2+38)。

2-文件夹;38 - 文件名

五、版本号

文件操作

 查看文件

git cat file -p 文件版本号   // -p 是一个参数,表示友好的查看某一个文件

 

git 在一次提交中创建了很多版本号。 当前为 初始化commit

文件新增后,修改后的文件也会关联源文件

 文件修改

 文件删除

相当于文件状态不指向文件,本质上并没有把文件真正的删除。文件依然保存在仓库中,作为历史操作中的文件。

 分支操作

在 git 中有一个HEAD文件,指向一个目录。里面放置的是一个版本号,指向最后一次提交。head文件可以用于指向不同的分支。而不同的分支可以指向相同的提交。 

 这样就可以实现不同的分支指向不同的版本。,互相之间互不影响。

git 中分为工作区域、存储区域 和 比对区域(暂存区)。不同区域的功能不同,文件状态也不同。

在工作区域,可以针对不同分支进行操作;在存储区域,可以比对文件的变化如新增、删除。在三个区域中,文件的状态都是不一样的。

比如,新增了文件之后,git 需要对当前文件进行比对(如果文件ignore则不需要比对),文件比对完成之后commit到了存储区域,所以文件的状态是不一致的,可以通过指令来进行控制。

六、 Git 命令

版本查看 

git -v  或 git --version
查看git当前版本

 

创建仓库

git init
初始化git仓库

git clone [git远程仓库地址]
克隆git远程仓库

git clone [git远程仓库地址] remote-git-rep
克隆git远程仓库 并更改名称

 

 

 仓库配置

git config user.name five
git config user.email xxx.com
配置git的名称 和 email

git config --global user.name five
git config --global user.email xxx.com
添加全体配置

 

 文件操作

git status
git暂存区的状态

git add [文件名称]
git add *.txt
放到暂存区做比对操作

git rm --cached [文件名称]
将文件从缓存区删除

git commit -m 新增文件
文件提交,其中 -m表示消息

git log
查看提交历史记录

git log --oneline
用一行显示当前提交

git add b.txt
git commit -m 删除文件
删除文件。由于删除的本质也是一次提交,只是仓库在引用时不再引用该文件。

 

 

 

 

 文件误删除

文件的删除是在工作区域删除,但是由于已经commit操作,存储区域保留有该文件,所以把存储区域的文件恢复到工作区就可以。

git restore a.txt
恢复误操作文件

 如果当前文件在仓库中的最新版本也被删除,就无法恢复。可以通过查看git提交的历史记录,将git当前的版本库重置到某一次提交。

git log --oneline
git reset --hard [版本号]

 但是reset会导致丢失提交过程。我们希望提交版本都能够保留,可以通过revert命令

git log --oneline
git revert [下一次提交的版本号]
将版本还原到当前版本号之前的版本

分支操作

分支基于提交

git branch [分支名称]
创建新分支

git branch -v
查看当前分支

git checkout [分支名称]
切换当前分支

git checkout -b [分支名称]
将创建分支、切换分支两步合并

git branch -d [分支名称]
删除当前分支

 

 

 

 

 

分支合并

当前有两个分支,如果希望分支合并,需要切换到master分支下,将order分支合并到master分支下。

git checkout master
git merge order

// 对冲突文件c.txt进行处理
git add c.txt
git commit -m c3

 

此时会发现出现提示,master和order中都出现了c.txt文件,需要进行比对。 打开c文件,里面出现了 比对的内容,需要人工进行比对。

标签操作

git log [某一次的提交版本]
查看某一次的历史提交记录

我们可以通过上面的操作来进行历史提交记录的查看。但是版本号太长不方便,我们可以通过标签来对我们的操作增加别名。

git tag
查看当前标签

git tag uptfile [版本号]
将这次提交改别名

git log uptfile
查看当前标签下的历史记录

git tag -d uptfile
删除标签

 标签同样也可以用来创建分支。分支其实就是引用了一个版本号,而标签就是给这个版本增加了别名。

git checkout -b [标签名称]
切换到该标签名称的分支目录下

远程仓库

基础操作

git remote add origin [远程仓库地址]
关联到远程仓库

git remote remove origin
删除远程仓库

git remote rename origin
重命名远程仓库

 文件的上传

git push origin
将本地的文件上传到远程仓库

如果是SVN方式,需要进行认证操作
ssh-keygen -t rsa -C[远程仓库地址]

将生成的公钥放到git远程仓库中,重新上传本地文件,就可以完成提交操作

 

文件的拉取

git pull origin
拉取远程仓库中的文件

七、GitLab 极狐

启动 GitLab

gitlab-ctl start
启动

gitlab-ctl stop
停止

访问 GitLab

使用浏览器访问 GitLab,输入网址:http://[虚拟机主机名]/users/sign_in

 初始化时,软件会提供默认管理员账户:root,密码为随机生成。随机生成的密码在 /etc/gitlab/initial_root_password 文件中查找密码。

与idea集成

安装相应插件

 配置gitlab

 

 

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

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

相关文章

后处理材质球:黄金螺旋分割线和参考图

后处理材质球:黄金螺旋分割线和参考图 Begin Object Class/Script/UnrealEd.MaterialGraphNode Name"MaterialGraphNode_0"Begin Object Class/Script/Engine.MaterialExpressionLinearInterpolate Name"MaterialExpressionLinearInterpolate_1&qu…

机器学习深度学习——图像分类数据集

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——softmax回归(下) 📚订阅专栏:机器学习&&深度学习…

交换机和终端设备的基本配置

1 IOS访问 1.1 操作系统 所有终端设备和网络设备都需要有操作系统 (OS)。如图所示,操作系统中直接与计算机硬件交互的部分称为内核。与应用程序和用户连接的部分则称为外壳。用户可以使用命令行界面 (CLI) 或图形用户界面 (GUI) 与外壳交互。 使用 CLI 时&#xf…

图像处理之Hough变换检测直线

hough变换-直线检测 一、 前言二、Hough 变换三、直线检测四、代码实现1.hough检测2.画直线代码3.画hough空间代码4.检测结果 一、 前言 霍夫变换是一种特征检测(feature extraction),被广泛应用在图像分析(image analysis)、计算机视觉(com…

从风控系统看架构设计原型图分析

目录 一、对架构与架构图的理解 (一)架构的本质 (二)软件设计中架构域的划分 (三)架构图设计 架构图设计的必要性 如何画架构图 二、实践业务架构与产品架构设计 (一)列出问…

Linux Mint 21.2 “Victoria “现已可供下载

Linux Mint 21.2 “Victoria “发行版今天出现在该项目全球稳定镜像上,这意味着开发者将很快发布官方公告,通知想要下载最新Linux Mint版本的用户。 Linux Mint 21.2从2023年6月21日开始进行公开测试,这给了开发者足够的时间来修复剩余的问题…

文心一言 VS 讯飞星火 VS chatgpt (63)-- 算法导论6.5 2题

文心一言 VS 讯飞星火 VS chatgpt (63)-- 算法导论6.5 2题 二、试说明 MAX-HEAP-INSERT(A,10)在堆A(15,13,9,5,12,8,7,4,0,6&#xf…

从零开始制作婚礼策划展示小程序

随着移动互联网的发展,小程序已经成为各行各业展示和推广自己的重要工具之一。对于婚礼策划行业来说,制作一个专属的婚礼策划展示小程序,不仅能提升服务的专业性和便利性,还能吸引更多的客户。下面将介绍从零开始制作婚礼策划展示…

解决Element-Plus中Swtich @change自动被触发的问题

如图所示 这个switchChange事件在初始化的时候会被自动触发 烦得很 解决方法 如图所示 第471行 通过判断是否还有其它某元素再往下执行 如果你有其它方法 请你在评论区教我下哈 3q

【梦辛工作室】IF判断优化、责任链模式 IfChain

大家好哇,我是梦辛工作室的灵,在最近的开发中,有许多需要判断的分支处理,且处理内容较多且复杂,代码就容易越写越复杂,导致后期无法继续更新跌打,然后基于这个环境,我用责任链模式写…

leetcode 面试题 判定是否互为字符重排

⭐️ 题目描述 🌟 leetcode链接:判定是否互为字符重排 思路: 两个字符串的每个字母和数量都相等。那么 s2 一定可以排成 s1 字符串。 代码: bool CheckPermutation(char* s1, char* s2){char hash1[26] {0};char hash2[26] {…

【ICCV2023】Scale-Aware Modulation Meet Transformer

Scale-Aware Modulation Meet Transformer, ICCV2023 论文:https://arxiv.org/abs/2307.08579 代码:https://github.com/AFeng-x/SMT 解读:ICCV2023 | 当尺度感知调制遇上Transformer,会碰撞出怎样的火花&#xff1…

三,创建订单微服务消费者 第三章

4.3 修改pom添加依赖 <dependencies><!--web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--监控--><dependency><groupId&g…

Windows安装postgresql时,启动报1053错误

用SQL shell 连接时显示拒绝连接&#xff0c;是因为postgreSql没有启动。 点击“服务”启动却报 1053错误 点击postgreSql服务&#xff0c;选择 登录-》选择本地系统账户&#xff0c;方可启动服务

网络安全 Day19-计算机网络基础知识04(网络协议)

计算机网络基础知识04&#xff08;网络协议&#xff09; 1. ARP1.1 ARP通讯原理1.2 arp欺骗1.3 ARP欺骗与预防1.4 排查ARP病毒 2. DHCP工作原理&#xff08;自动分配内网IP&#xff09;3. TCP协议三次握手、四次挥手原理4. DNS协议工作原理 1. ARP Linux查看arp&#xff1a;ar…

Mysql错误日志、通用查询日志、二进制日志和慢日志的介绍和查看

一.日志 1.日志和备份的必要性 日志刷新 2.mysql的日志类型 &#xff08;1&#xff09;错误日志 查看当前错误日志和是否记录警告设置 &#xff08;2&#xff09;通用查询日志 查看通用查询日志的设置 &#xff08;3&#xff09;二进制日志 查看二进制文件的设置&…

Hadoop 之 Hbase 配置与使用(四)

Hadoop 之 Hbase 配置与使用 一.Hbase 下载1.Hbase 下载 二.Hbase 配置1.单机部署2.伪集群部署&#xff08;基于单机配置&#xff09;3.集群部署1.启动 hadoop 集群2.启动 zookeeper 集群3.启动 hbase 集群4.集群启停脚本 三.测试1.Pom 配置2.Yml 配置3.Hbase 配置类4.Hbase 连…

关于PyTorch中一维卷积Conv1d的理解

首先明确一点&#xff0c;PyTorch中的一维卷积是从左往右做的&#xff0c;不是从上往下。 然后明确第二点&#xff0c;一维卷积和二维卷积最大的区别在于&#xff0c;一维卷积的卷积方向只有一个维度&#xff0c;一维卷积的卷积核不像二维卷积核一样可以左右和上下两个维度移动…

【使用时空RBF-NN进行非线性系统识别】实现了 RBF、分数 RBF 和时空 RBF 神经网络,用于非线性系统识别研究(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 2.1 算例1 2.2 算例2 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码实现 &#x1f4a5;1 概述 本文用于非线性系统识别任务的径向基函数神经网络&#xff08;RBF-NN&#xff09;的三种变体。特别是&#xff0c;我实现…

大模型,开源干不掉闭源

开源大模型对闭源大模型的冲击&#xff0c;变得非常猛烈。 今年3月&#xff0c;Meta发布了Llama&#xff08;羊驼&#xff09;&#xff0c;很快成为AI社区内最强大的开源大模型&#xff0c;也是许多模型的基座模型。有人戏称&#xff0c;当前的大模型集群&#xff0c;就是一堆各…