当前位置: 首页 > news >正文

git入门

目录

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文件

https和ssh的区别,就是前者会需要提供账号密码,后者就是通过数字证书的形式,免密(因为本地有数字证书)

创建完成后

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 常用命令


 

 pwd 查看当前文件路径

 

注:红色表示没被跟踪 

 

注:查看暂存放区文件

 

注: -u意思就是下次登陆的时候直接git push  不用加-u

 

注:查看远程仓库 

 

 注:上传到git的流程,克隆就是git clone + 复制的网站

 

注:获取远程仓库 

 

注:查看日志 

 

注:git add . 之后从暂存区移除 

使用下面代码可以在家回去

 

 

注:删掉了,发现还需要,那么就可以 这样恢复

 恢复后:

 

 

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,先更新远程仓库内容。处理完合并后再推入远程仓库

 

 注:决定好使用谁的提交代码,之后删掉就行了,

注:意思就是说合并之后的提示 

 

相关文章:

git入门

目录 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 克隆&#xff08;clone&#xff09; 3.5 查看git仓库的状态 3.…...

RK3568编译Android11和目录讲解

文章目录 前言一、下载android11源码二、环境搭建1.增加交换内存三、编译瑞芯微原厂源码四、目录讲解总结前言 本文记录在Ubuntu18.04中编译Android11,只有编译了源码,后面才能进行驱动的开发,有兴趣的小伙伴可以和我一起学习吧! 提示:以下是本篇文章正文内容,下面案例可…...

java泛型学习篇(二)

java泛型学习篇(二) 1 自定义泛型类 1.1 基本语法 Class 类型 <T,R,M...>{ //成员,其中...代表<>括号里面的参数可以有多个ja }1.2 注意点 1.2.1 属性和方法都是可以使用泛型的 T t;//属性使用泛型,合法public T getT() {return t;} //方法使用泛型,合法 publi…...

Java基础

Java基础Java基础一、课前问答二、概述三、Java的历史四、Java的特点五、计算机执行机制以及Java执行机制5.1 计算机的执行机制5.2 Java的执行机制六、常用DOS命令七、第一个Java程序八、包的使用九、编码规范十、注释Java基础 一、课前问答 1、什么是程序 2、什么是语言 3、什…...

骨骼控制(一)——动画动态节点(AnimDynamics)

文章目录一、引言二、骨骼控制三、UE蓝图中提供的骨骼控制节点——AnimDynamics动画蓝图节点1、什么是AnimDynamics动画蓝图节点①使用盒体计算惯性②使用约束来限制移动2、AnimDynamics节点的几种常用例子①单骨骼模拟②骨骼链模拟 <h2 id1>③群魔乱舞&#xff08;这是错…...

Linux系统下搭建maven环境

文章目录前述从官网下载安装包安装 maven修改maven配置修改环境变量测试前述 安装 maven 环境前&#xff0c;需要先安装 java 环境&#xff0c;如果没有安装 java 环境&#xff0c;可以参考&#xff1a;https://blog.csdn.net/weixin_45583303/article/details/118631855 从官…...

English Learning - L2 语音作业打卡 Day3 2023.2.23 周四

English Learning - L2 语音作业打卡 Day3 2023.2.23 周四&#x1f48c; 发音小贴士&#xff1a;&#x1f48c; 当日目标音发音规则/技巧&#xff1a;&#x1f36d; Part 1【热身练习】&#x1f36d; Part2【练习内容】&#x1f36d;【练习感受】&#x1f353;元音[ ɔ: ]&…...

RK3568平台开发系列讲解(驱动基础篇)GIC v3中断控制器

🚀返回专栏总目录 文章目录 一、什么是GIC二、GIC v3中断类型三、GIC v3基本结构3.1、Distributor3.2、CPU interface简介3.3、Redistributor简介3.4、ITS(Interrupt translation service)4、中断状态和处理流程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢ARM多核…...

决策树、随机森林、极端随机树(ERT)

声明&#xff1a;本文仅为个人学习记录所用&#xff0c;参考较多&#xff0c;如有侵权&#xff0c;联系删除 决策树 通俗来说&#xff0c;决策树分类的思想类似于找对象。现想象一个女孩的母亲要给这个女孩介绍男朋友&#xff0c;于是有了下面的对话&#xff1a; 女儿&#x…...

软件测试之因果图法

因果图法 1. 概述 因果图法是一种**利用图解法分析输入条件、输出结果的各种组合情况,**从而设计测试用例的方法. 因果图法适用于有多个输入和多个输出&#xff0c;而且输入和输入之间有相互的组合关系&#xff0c;输入和输出之间有相互的制约和依赖关系. 使用场景和判定表…...

vue中子组件间接修改父组件传递过来的值

一、前言 Vue官方文档Props单向数据流讲解 Vue中遵循单向数据流&#xff0c;所有的 props 都遵循着单向绑定原则&#xff0c;props 因父组件的更新而变化&#xff0c;自然地将新的状态向下流往子组件&#xff0c;而不会逆向传递。这避免了子组件意外修改父组件的状态的情况&a…...

Java I/O

前言 关于IO, 想必你听过很多中I/O方式, 有的是OS视角的, 有的是JDK本身支持的, 有的是纯实现视角。但是作为一个developer, 我希望你能先搞清楚上下文之后, 再去理解内容, 否则容易抬杠。这个上下文有横向和纵向两个维度。纵向维度包括JDK底层, JDK上层包装库, 开发框架(如Ne…...

pytorch学习日记之图片的简单卷积、池化

导入图片并转化为张量 import torch import torch.nn as nn import matplotlib.pyplot as plt import numpy as np from PIL import Image mymi Image.open("pic/123.png") # 读取图像转化为灰度图片转化为numpy数组 myimgray np.array(mymi.convert("L"…...

【java基础】抽象类和抽象方法

文章目录基本介绍抽象类抽象方法使用总结基本介绍 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是用来描绘对象的&#xff0c;如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就…...

RDD的内核调度【博学谷学习记录】

RDD的依赖关系RDD的依赖: 指的一个RDD的形成可能是有一个或者多个RDD得出, 此时这个RDD和之前的RDD之间产生依赖关系在Spark中, RDD之间的依赖关系,主要有二种依赖关系:1- 窄依赖:目的: 为了实现并行计算操作, 并且提高容错的能力指的: 一个RDD上的一个分区的数据, 只能完整的交…...

二叉树——二叉搜索树的最小绝对差

二叉搜索树的最小绝对差 链接 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 1&#xff1a; 输入&#xff1a;root [4,2,6,1,3] 输出&#xff1a;1 示例 2&…...

git的使用(终端输入指令)下

文章目录前言1、git 分支创建分支查看分支切换分支合并分支删除分支2.提交到远程仓库远程提交链接一下自己仓库总结前言 上章链接 &#xff1a;git的使用&#xff08;终端输入指令&#xff09;上 我们接着上着来说 上章把 git 的 功能实现了一部分&#xff0c;本章我们接着上文…...

python使用influxdb-client管理InfluxDB的bucket

bucket的概念类似数据库的“库”&#xff0c;同时每个库中的数据都因为存在“时间戳”&#xff0c;每个数据都会有一个对应的时间点 influxdb-client-python官方github页面&#xff1a;https://github.com/influxdata/influxdb-client-python 管理bucket的官方示例&#xff1…...

【c++】模板2—类模板

文章目录类模板语法类模板与函数模板区别类模板中成员函数常见时机类模板对象做函数参数类模板与继承类模板成员函数类外实现类模板分文件编写类模板与友元类模板语法 类模板作用&#xff1a; 建立一个通用类&#xff0c;类中的成员数据类型可以不具体制定&#xff0c;用一个虚…...

基于SpringCloud的可靠消息最终一致性03:项目骨架代码(下)

上一节把整个项目的演示内容、项目结构、POM文件和配置文件都讲完了,接下来继续。 先安装并启动Nacos,然后在其中建立一个名为xiangwang-payment-dev.yaml的配置文件,内容为: # 指定运行环境 spring:autoconfigure:exclude: com.alibaba.druid.spring.boot.autoconfigure.D…...

linux如何彻底的删除文件

一、使用rm命令删除 直接用rm 先用ls -alt看下文件信息及拥有者等 可以看到拥有者是eve用户&#xff0c;所以在eve用户的终端中rm命令即可&#xff0c; 如果是root或者其他&#xff0c;则优先用root或其他账号进行删除 (base) eveEve:~$ ls -alt a.txt -rw-rw-r-- 1 eve eve …...

数据仓库Hive的安装和部署

1&#xff09;去apache.hive.org官网下载hive 目前hive主要有三大版本&#xff0c;Hive1.x、Hive2.x、Hive3.x Hive1.x已经2年没有更新了&#xff0c;所以这个版本后续基本不会再维护了&#xff0c;不过这个版本已经迭代了很多年了&#xff0c;也是比较稳定的 Hive2.x最近一直…...

Python调用CANoe常见问题

一、Win32com已经安装成功但是在pycharm中提示错误 No module named win32com.clientPyCharm中出现unresolved reference的解决方法 一直提示需要升级pip版本Pywin32已成功安装,但仍提示没有win32com模块...

一起Talk Android吧(第五百零七回:图片滤镜ImageFilterView)

文章目录背景介绍功能介绍图片滤镜图片圆角图片缩放图片旋转图片平移各位看官们大家好&#xff0c;上一回中咱们说的例子是"如何调整组件在约束布局中的角度",这一回中咱们说的例子是" 图片滤镜ImageFilterView"。闲话休提&#xff0c;言归正转&#xff0c…...

Java 解释器和即时解释器(JIT)之间的区别

区别是&#xff1a; 翻译 .class &#xff08;字节码文件&#xff09; 的粒度和方式不同 解释器是一个逐条解释并执行字节码指令的组件&#xff0c;每次**只翻译一条**指令并执行&#xff0c;然后再翻译下一条指令。 它的翻译粒度是一条指令&#xff0c;而且是按需翻译&#x…...

Acwing 蓝桥杯 第二章 二分与前缀和

今天来补一下之前没写的总结&#xff0c;题是写完了&#xff0c;但是总结没写感觉没什么好总结的啊&#xff0c;就当打卡了789. 数的范围 - AcWing题库思路&#xff1a;一眼二分&#xff0c;典中典先排个序&#xff0c;再用lower_bound和upper_bound维护相同的数的左界和右界就…...

CSDN原力增长规则解读 实测一个月

CSDN原力越来越难了&#xff0c;当然&#xff0c;这对生态发展来说也是好事。介绍下原力增长有哪些渠道吧。发布原创文章&#xff1a;10分/次&#xff0c;每日上限为15分、2篇回答问题&#xff1a;1分/次&#xff0c;每日上限2分&#xff0c;2回答发动态&#xff1a;1分/次&…...

HDMI协议介绍(三)--InfoFrame

目录 Auxiliary Video information (AVI) InfoFrame AVI InfoFrame包结构 Header Body 举个例子 附录 Audio InfoFrame Audio InfoFrame包结构 Header Body Vendor Specific InfoFrame Vendor Specific InfoFrame包结构 Header Body AVI/AUDIO/VSI Infoframe都…...

【RocketMQ】源码详解:Broker端消息储存流程、消息格式

消息存储流程 入口&#xff1a; org.apache.rocketmq.remoting.netty.NettyRemotingAbstract#processRequestCommand org.apache.rocketmq.broker.processor.SendMessageProcessor#asyncProcessRequest 消息到达broker后会经过netty的解码、消息处理器等&#xff0c;最后根据…...

IoT项目系统架构案例2

项目背景 1.这个项目是对之前的案例的升级改造参考&#xff1a;IoT项目系统架构案例_iot案例_wxgnolux的博客-CSDN博客2.基于方案1的项目实施过程中碰到的问题,对硬件设备标准化的理念及新的功能需求(如根据天气预报温度调水温,APP界面可操作性优化等)•采用目前IoT主流厂商的架…...

eclips怎么做网站/种子资源

博为峰小博老师&#xff1a;JComboBox的事件处理也可分为两种&#xff0c;一种是取得用户选取的项目;另一种是用户在JComboBox上自行输入完毕后按下回车键&#xff0c;运行相对应的工作。对于第一种事件的处理&#xff0c;可使用ItemListener实现。对于第二种事件的处理&#x…...

武威网站制作公司服务电话/东莞百度推广优化排名

23 个实验带你轻松玩转 Spring BootSpring Boot 入门及前后端分离项目实践从零开始搭建一个精美且实用的管理后台SSM整合进阶篇Intellij IDEA相关笔记日常手记开源博客My Blog系列短信接口攻击事件读书笔记SSM整合优化篇SSM整合基础篇23 个实验带你轻松玩转 Spring Boot 开篇词…...

html中网站最下面怎么做/成都seo优化排名推广

Array.of() Array.of() 方法创建一个具有可变数量参数的新数组实例&#xff0c;而不考虑参数的数量或类型。 Array.of() 总是返回由参数值组成的新数组。如果没有参数&#xff0c;就返回一个空数组。 语法&#xff1a; Array.of(element0[, element1[, ...[, elementN]]])参…...

昆明网站建设哪家合适/app推广平台

Shutdownnormal:等待所有用户断开连接时&#xff0c;关闭数据库、卸载数据库和关闭实例。immediate&#xff1a;回滚所有用户事务&#xff0c;关闭数据库、卸载数据库和关闭实例.(注意是回滚)。transactional&#xff1a;当所有用户事务结束时&#xff0c;关闭数据库、卸载数据…...

猪八戒网站找做微信小程序的/网站推广名词解释

查看npm 包 源文件You can decide what files people get when they download your npm package in three ways:您可以通过以下三种方法来确定人们下载npm软件包时得到的文件&#xff1a; With the .gitignore file 使用.gitignore文件 With the .npmignore file 使用.npmigno…...

晋江网站建设费用/关键词优化怎么优化

CDH的parcel包中是没有kafka的&#xff0c;kafka被剥离了出来&#xff0c;需要从新下载parcel包安装。或者在线安装&#xff0c;但是在线安装都很慢&#xff0c;这里使用下载parcel包离线安装的方式。 PS:kafka有很多版本&#xff0c;CDH也有很多版本&#xff0c;那也许你会疑…...