git入门

news2024/9/23 15:33:31

目录

1. git简介

1.1 git是什么

1.2 git与svn的区别

2. github

2.1 创建仓库

2.2 删除仓库

2.3 新建文件及文件夹

3. git的基本操作

3.1 配置账户及邮箱

3.2 git文件状态与工作区域

3.3 常用命令

3.4 克隆(clone)

3.5 查看git仓库的状态

3.6 新创建的文件并添加到“暂存区”

 3.8“暂存区”的内容提交到“本地仓库”

3.9“本地仓库”的内容提交到“远程仓库”

3.10 将本地项目推入远程仓库。

3.11 冲突的问题 


1. git简介


1.1 git是什么


是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

git的安装非常简单:

1.2 git与svn的区别


1) git是分布式的
GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别
2)git仓库的任何一个拷贝都可以独立作为一个服务器来使用,因为git是分布式的,在远程仓库和本地仓库中都有完整拷贝。
3)在Git中文件有四种状态:
未跟踪(untrack):表示文件为新增加的
已修改(modified):表示修改了文件,但还没保存到git仓库中。
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git仓库中。
4) 其它
GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏
5) 直接记录快照,而非差异
GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
6) 直接记录快照,而非差异
GIT分支和SVN的分支不同,分支在SVN中一点不特别,就是版本库中的另外的一个目录。

前三个不同点重点理解,后面几个一般性了解

2. github


GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。
github上repository分为public和private,public可以被其他人看到并clone;而private是不能被别人看到的。这里把repository创建为private的场景为:自己创建一个私人项目,但是又需要和其他developer一起开发,所以,需要developer都能克隆这个private repository,并且都能提交到这个private repository。
目前GitHub为微软所有,可以免费的创建私有仓库,但免费的情况下,协助的成员最多为3个。

2.1 创建仓库


首先登陆到github

勘误:生成readme.md(markdown类型的文件)文件而不是readme.txt文件

创建完成后

 

2.2 删除仓库


 

2.3 新建文件及文件夹


 

3. git的基本操作


3.1 配置账户及邮箱


一般刚安装Git都要配置用户名和邮箱,因为你提交代码到本地仓库(上传代码到远程仓库)时会用到。如果没有没有配置,在你提交时它会提醒,如果仅仅是下载公有仓库则不需要,甚至不需要注册。

成功安装git后,在任何目录点击右键,选择“git bash here”即可进入git的命令窗口:

 

 1)查看git的配置信息

git config --list

2)设置用户名及邮箱

git config --global user.name "username"
git config --global user.email "email"
# 为安全,一般不在配置信息中设置密码
git config --global user.password "password"

注:
全局配置:
--global 表示全局的,即当前用户都有效,该配置会出现在 ~/.gitconfig 文件中,~表示当前用户的目录,
比如:C:\Users\Administrator.gitconfig,打开该文件你会发现如下图所示的内容:
[user]
name = xxx
email = xxx@qq.com
局部配置
git config user.name "username"
git config user.email "email"
局部是只对当前仓库起效的,它的配置信息会在当前仓库根目录/.git/config文件下。注意:局部变量覆盖全局变量

3)删除某个全局配置项

git config --global --unset user.name

3.2 git文件状态与工作区域


git的文件状态是其git核心内容,了解后对后续的操作有莫大的帮助,不同的文件状态又存储在不同的工作区域中.

  1. git中的文件有以下几种状态
  • 未跟踪(untrack):表示文件为新增加的
  • 已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
  • 已提交(committed):表示文件已保存在git仓库中。
  • 已修改(modified):表示修改了文件,但还没保存到git仓库中。
  1. 工作区域
    按照本地计算机与远程计算机划分,工作区域有以下几种
  • 本地计算机
    Working Directory(工作目录):即正在编辑的文件状态。文件状态为未跟踪(untrack)和已修改(modified)在此区域内。
    Staging Area(暂存区):保存了下次将提交的文件列表信息。文件状态为已暂存(staged)在此区域内。可以使用 git ls-files 查看暂存区的内容。
    Repository(本地仓库):提交到本地仓库的文件。
  • 远程计算机
    Repository(远程仓库):已提交到远程计算机内的文件。

理解下图的示意图:

3.3 常用命令


 

3.4 克隆(clone)


 2)到本地目录(你所要放置项目的目录),右击鼠标,选择“git bash here”进入git命令行。

git clone https://github.com/lisensir/hello-world.git

如图:

 

注:本例演示了通过https协议克隆,除了https协议git还支持如下协议:
git clone git@github.com:fsliurujie/test.git --SSH协议
git clone git://github.com/fsliurujie/test.git --GIT协议

与其他版本控制软件,如svn相比,这里使用的克隆(clone),而不是检出(checkout),git 收取的是项目历史的所有数据(每一个文件的每一个版本),服务器上有的数据克隆之后本地也都有了。实际上,即便服务器的磁盘发生故障,用任何一个克隆出来的客户端都可以重建服务器上的仓库,回到当初克隆时的状态

3.5 查看git仓库的状态


要先来到对应项目的目录。

git status

3.6 新创建的文件并添加到“暂存区”


在git管理的目录(如上例中的hello-word目录),新建一个文件
可以使用如下命令查看状态:

git status

注:红色表示没有加入暂存区。

将文件放入“暂存区”

$ git add .

注: 后面的那个“.” 所示将所有新增的文件都放入暂存区。

查看git状态

 

 3.8“暂存区”的内容提交到“本地仓库”


git commit -m '注释'

3.9“本地仓库”的内容提交到“远程仓库”


语法:
git push <远程主机名> <本地分支名>  <远程分支名>

示例:

git push origin master

 注:
如果省略远程分支名,则推入与本地分支同名的远程分支
远程分支一般默认的名称为 origin,但不是必须的。

git push -u origin master

注:如果带有-u参数,则指定了默认的远程主机, 这样以后再推入时,可以简写为:git push。不带任何参数的git push,默认只推送当前分支,这叫做simple方式。

3.10 将本地项目推入远程仓库。


1)在本地创建一个目录:

2)进入gitdemo目录,右击鼠标打开git命令行(Git Base Here)
3)使用git init 初始化git仓库

4)在gitdemo目录中添加一个测试文件,如abc.txt
5)将新增的abc.txt文件加入的本地仓库(分两步,见下图) 

 6) 在github中创建仓库

 

7)本地仓库与远程仓库关联 

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

8)把本地库的所有内容推送到远程库上

 

3.11 冲突的问题 


1)粗暴方式 

git push -f

会忽略版本不一致等问题,强制将本地库上传的远程库,会覆盖远程仓库的内容。要谨慎使用

2)温柔方式
使用 git pull 或 git fetch,先更新远程仓库内容。处理完合并后再推入远程仓库

 

 

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

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

相关文章

[音视频] BMP 图片格式分析

BMP 格式是什么 BMP&#xff08;Bitmap&#xff09;是一种常见的无损位图图像文件格式&#xff0c;是Windows操作系统中最早使用的图像格式之一&#xff0c;也是目前很多应用程序所使用的标准图像格式之一。 整体结构图&#xff0c;如下图所示 格式 BMP文件格式有多个版本&a…

QT中级(5)多线程读取一个文件,并在另一个文件夹中合成这个文件(1)

1 先实现一个简单程序 1.1 功能 用户可以输入一个源文件的路径和目标路径点击开始&#xff0c;程序启动读取和合成合成进度可见、合成步骤可见 1.2 思路 一个线程顺序读取文件&#xff0c;达到设定的缓存块就发给另一个合成线程&#xff0c;主线程用来进行数据传递、显示进…

电子技术——A类输出阶

电子技术——A类输出阶 因为射极跟随器具有较低的输出阻抗&#xff0c;射极跟随器是A类输出阶的典型代表。我们之前已经学习过射极跟随器的小信号模型&#xff0c;本节我们讨论其大信号模型。 传输特性 下图展示了一个射极跟随器的原理图&#xff1a; 其中 Q1Q_1Q1​ 为射极…

并发编程-学习总结(下)

目录 1、Future 1.1、Callable和Runnable的不同 1.2、Future的主要功能 1.3、常用方法 1.4、Future使用注意事项 1.5、CompletableFuture(旅游平台问题) 1.5.1、需求 1.5.2、解决方案1&#xff1a;串行 1.5.3、解决方案2&#xff1a;线程池 1.5.4、解决方案3&#xf…

Prometheus本地存储和VictoriaMetrics远端存储

文章目录Prometheus本地存储简介blockWAL本地存储配置参数VictoriaMetrics简介单机版部署使用安装VictoriaMetrics配置Prometheus使用Victoriametrics配置Grafana以Victoriametrics作为数据源集群版部署使用部署vmstorage部署vmselect部署vminsert配置Prometheus使用vminsert配…

LearnOpenGL-入门-你好,三角形

本人刚学OpenGL不久且自学&#xff0c;文中定有代码、术语等错误&#xff0c;欢迎指正 我写的项目地址&#xff1a;https://github.com/liujianjie/LearnOpenGLProject LearnOpenGL中文官网&#xff1a;https://learnopengl-cn.github.io/ 文章目录图形渲染管线基本介绍着色器…

文献计量三大定律之一---洛特卡定律及普赖斯定律

科学生产率是洛特卡定律的基础&#xff0c;科学生产率”(Scientific Productivity)&#xff09;是指科学家&#xff08;科研人员&#xff09;在科学上所表现出的能力和工作效率&#xff0c;通常用其生产的科学文献的数量来衡量。 1926年&#xff0c;洛特卡在一篇论文中提出了科…

Windows作为操作系统的典型特征和主要功能

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天我们来重新审视一下Windows这个我们熟悉的不能再熟悉的系统。我们每天都在用Windows操作系统&#xff0c;但是其实我们每天直接在打交道的并不是Windows操作系统的内核&#xff0c;而是Windows操作系统的…

Docker部署Springboot项目(含MySQL+Redis)

使用Docker部署之前写的一个博客项目&#xff0c;主要用到了MySQL和Redis&#xff0c;Redis作网站访问量统计。下面会对具体的部署方式作详细讲解 一、服务器安装Docker 1、删除docker旧版本 sudo yum remove docker \docker-client \docker-client-latest \docker-common \…

(三十五)大白话MySQL一个事务多次查询一条数据读到的都是不同的值,这就是不可重复读?

上一讲我们说完了多个事务并发执行时候&#xff0c;对MySQL的缓存页里的同一行数据同时进行更新或者查询的时候&#xff0c;可能发生的脏写和脏读的问题 我们也都理解了&#xff0c;之所以会发生脏写和脏读&#xff0c;最关键的&#xff0c;其实是因为你一个事务写或者查的是人…

黑盒测试的常用方法

这里我们先设置一个示例,后面的文章中会根据示例来进行讲解 假设有一个程序是判断一个整形数字是否属于1-100 目录 1.等价类法 2.边界值法 3.判定表法 4.场景设计法 5.错误猜测法 6.正交法 1.等价类法 概念:系统性的确定要输入的测试条件的方法可以看出概念非常抽象,那…

命令执行漏洞 | iwebsec

文章目录1 靶场环境2 命令执行漏洞介绍3 靶场练习01-命令执行漏洞02-命令执行漏洞空格绕过03-命令执行漏洞关键命令绕过04-命令执行漏洞通配符绕过05-命令执行漏洞base64编码绕过4 命令执行漏洞危害01-读写系统文件02-执行系统命令03-种植恶意木马04-反弹shellpython反弹shellp…

Android 基础知识4-3.4 ImageView(图像视图)详解

一、ImageView简介 ImageView是Android开发中最常用的组件之一&#xff0c;主要用于显示图片&#xff0c;但是它不只是能显示图片&#xff0c;任何Drawable对象都可以使用它来显示。 二、ImageView 的继承关系 ImageView的继承关系 如下&#xff1a; java.lang.Object 《-- …

生成式语言大模型压缩技术思考——以ChatGPT为例

ChatGPT引领了生成式语言大模型的应用与技术热潮&#xff0c;首先简单回顾ChatGPT应用范式&#xff1a;将其应用于指定的下游任务时&#xff08;如知识问答、翻译、编码&#xff09;&#xff0c;ChatGPT需要经历三个阶段的训练&#xff08;增强人类语境的猜想&#xff09;&…

基于nodejs+vue的平面设计课程管理系统vscode

后台由管理员&#xff0c;教师和学生三个角色&#xff0c;其主要功能包括首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;教师管理&#xff0c;课程类型管理&#xff0c;课程学习管理&#xff0c;试题讲解管理&#xff0c;作业信息管理&#xff0c;作业提交管理&…

Flutter3引用原生播放器-IOS(Swift)篇

前言由于Flutter项目中需要使用到播放器功能&#xff0c;因此对flutter中各种播放器解决方案进行了一番研究和比对&#xff0c;最后决定还是自己通过Plugin的方法去引用原生播放器符合自己的需求&#xff0c;本篇文章会对各种解决方案做一个简单的比较&#xff0c;以及讲解一下…

STM32—DMA

什么是DMA&#xff1f; DMA(Direct Memory Access&#xff0c;直接存储器访问) 提供在外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通&#xff0c;而不需要依赖于CPU&#xff0c;在这个时间中&#xff0c;CPU对于内存的工作来…

Leetcode 剑指 Offer II 016. 不含重复字符的最长子字符串

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的最长…

软考之操作系统知识

目录 1.进程管理-进程的概念 2.进程的三态图和五态图 3.进程的同步与互斥 4.PV操作应用 5.死锁问题 6.银行家算法 7.存储管理 8.段式存储组织 9.段页式存储组织 10.页面置换算法 11.磁盘管理 12.作业管理 13.索引文件结构 14.树型目录结构 15.空闲存储空间管理 …

第四届蓝桥杯省赛 C++ B组 - 翻硬币

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4da;专栏地址&#xff1a;蓝桥杯题解集合 &#x1f4dd;原题地址&#xff1a;翻硬币 &#x1f4e3;专栏定位&#xff1a;为想参加蓝桥杯的小伙伴整理常考算法题解&#xff0c;祝大家都…