【Git】上传本地文件到Git(以Windows环境为例)

Git 的下载参考:Git 安装及配置

一、Git 上传的整体流程

1、工作区 => 本地仓库

将本地文件上传到Git,需要先上传到本地仓库,然后再上传到远程仓库。要上传文件到本地仓库,不是直接拷贝进去的,而是需要通过命令一步步上传。从工作区到本地仓库分为了三步,也可以说是三个区域:

① 工作区

我们要上传的文件所处位置,一般称为“工作区”,工作区是开发者直接编辑和修改文件的地方,包括源代码、配置文件等。

② 暂存区

暂存区用于暂时存储待提交的修改文件,暂存区的存在允许开发者在提交前对修改的文件进行审核。此外,暂存区允许将相关修改进行逻辑分组,开发者可以将同一部分修改的文件添加到暂存区,形成一个逻辑上的组,方便开发者管理和提交相关的修改。

③ 本地仓库

本地仓库记录了项目从创建开始的所有修改、提交和版本信息,通过本地仓库,开发者可以追踪、查看和恢复之前的任何版本,包括历史各个版本的备份。此外,本地仓库支持分支操作,开发者可以创建、切换和合并不同的分支。

2、本地仓库 => 远程仓库

为了可以让其他用户看到自己的成果,我们可以将自己本地仓库的内容上传到远程仓库;如果我们希望借鉴其他用户的成果,我们可以将远程仓库里的一些内容拉取或者克隆到本地仓库。

二、工作区 到 本地仓库

1、建立本地仓库(git init)

使用 git init 来建立一个本地仓库,该命令将当前目录转换为一个 git 仓库,并在该仓库中跟踪新的或已有的文件。如果当前目录下出现了 .git 目录,说明本地仓库建立成功。

2、工作区—暂存区(git add)

使用 git add 将工作区的内容添加到暂存区,可以搭配 .gitignore 文件使用。Windows 的默认换行符是回车(CR)+换行(LF)即'\r\n',而Linux环境的默认换行符是换行(LF)即'\n'。针对不同环境,在操作之间,输入如下命令

# Windows 环境
#提交时转换为LF,拉取时转换为CRLF
git config --global core.autocrlf true# Linux 环境
#提交时转换为LF,拉取时不转换
git config --global core.autocrlf input

创建 .gitignore 文件(可跳过)

 默认情况下,Git会管理工作区的所有文件,然而对于一些临时文件,我们不希望Git 来管理,此时我们可以在 .gitignore 文件中加入要忽略的目录或者文件,.gitignore 文件的写法如下。(若没有要忽略的文件,可以直接使用 git add)

# 忽略所有的 .a 文件
*.a# 忽略 build 目录下的所有文件
build/# 忽略build 目录下的所有 .txt 文件,注意 build/doc/ 下的 .txt 文件不会被忽略
build/*.txt# 忽略build目录以及子目录下的所有 .txt 文件
build/**/*.txt

git add 将文件拷贝到暂存区

只要还没提交到本地仓库,我们可以多次上传文件到暂存区。 

# 命令格式: git add <file1> <file2> ...
# 将当前目录下的file.txt 上传至暂存区
git add file.txt# 将当前目录下所有的文件上传至暂存区
git add . 

可以使用 git status 命令查看工作区和暂存区之间的状态,它会列出有关工作区和暂存区的文件的当前状态信息,例如已修改、已暂存等。一旦commit,git status 保存的修改就会被清空。

3、暂存区—本地仓库(git commit)

git commit 表示提交一条上传记录到本地仓库,同时为该条记录分配ID,有了ID我们就可以进行版本回溯,提交时可以携带提交信息,即本次提交做出了哪些修改。

# 命令格式: git commit -m "提交信息"
git commit -m "first commit"

随后可以输入 git log 来查看提交历史,它会显示当前分支的所有提交记录,包括提交者、提交时间、提交的信息等。

注意:如果是直接输入 git commit,则会弹出编辑器让你输入提交信息,使用方法类似于Linux环境下的vi编辑器。

三、本地仓库 到 远程仓库

要将本地仓库的内容上传到远程仓库,最终需要使用 git push 来上传,git push 的命令格式如下。

git push [-f] [--set-upstream] [远程仓库名] [本地分支名][:远程仓库的分支名]
  • 远程仓库名:可以是url,也可以是远程仓库在本地的别名
  • 远程分支名:可省略,省略的情况下和本地分支名一致
  • -f : 本地内容强制覆盖远端内容(一般不使用)
  • --set-upstream: 推送到远端的同时,建立起和远端分支的关联关系,如果建立起关系,以后不必输入远程仓库名、本地分支、远程仓库分支,可以直接使用 git push 来推到远端;反过来说,在建立联系的时候,必须要有远程仓库名、本地分支、远程仓库分支。

1、添加远程仓库在本地的别名

若要多次上传,使用别名会更加方便,添加远程仓库在本地的别名本质就是在本地添加远程仓库的映射,可以在本地添加多个仓库映射。

基本格式如下:

# <nickname>: 远程仓库在本地的别名,一般是origin
# <address>:  远程仓库的url
git remote add <nickname> <address>

使用 git remote 命令查看远程仓库的映射是否存在 

2、本地仓库 — 远程仓库(git push)

接下来便可以使用 git push 将本地仓库的内容添加到远程仓库了,远程分支在省略的情况下默认和本地分支保持一致。

# 等价于 git push origin master:master
# 含义: 将本地的master分支推送到 origin 仓库的master分支
git push origin master

注意:若遇上下面的情况,是因为本地内容和远程内容不一致(可能是其他人提交的代码或者远程分支的更新),所以Git 拒绝了你的推送。

此时需要先让本地内容和远程仓库的内容同步,使用 git pull 命令将远程仓库的内容同步到本地,相当于做了 “拉取 + 合并” 两步。(合并的作用是将目标分支的修改应用到当前分支)

# 拉取origin远程仓库的master分支,同时与当前分支进行合并
git pull origin master# 等价于下面两步
git fetch origin master    # 仅拉取
git merge origin master    # 仅合并

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

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

相关文章

【Linux网络编程六】服务器守护进程化Daemon

【Linux网络编程六】服务器守护进程化Daemon 一.背景知识&#xff1a;前台与后台二.相关操作三.Linux的进程间关系四.自成会话五.守护进程四步骤六.服务器守护进程化 一.背景知识&#xff1a;前台与后台 核心知识就是一个用户在启动Linux时&#xff0c;都会给一个session会话&a…

Java毕业设计-基于springboot的学院物资管理系统-第73期

获取源码资料&#xff0c;请移步从戎源码网&#xff1a;从戎源码网_专业的计算机毕业设计网站 项目介绍 基于springboot的学院物资管理系统&#xff1a;前端thymeleaf、jquery、layui&#xff0c;后端 maven、springmvc、spring、mybatis&#xff0c;有配套报告文档&#xff…

【动态规划】【记忆化搜索】【状态压缩】1681. 最小不兼容性

作者推荐 【数位dp】【动态规划】【状态压缩】【推荐】1012. 至少有 1 位重复的数字 本文涉及知识点 动态规划汇总 状态压缩 记忆化搜索 1681. 最小不兼容性 给你一个整数数组 nums​​​ 和一个整数 k 。你需要将这个数组划分到 k 个相同大小的子集中&#xff0c;使得同一…

指针的经典笔试题

经典的指针试题&#xff0c;让你彻底理解指针 前言 之前对于指针做了一个详解&#xff0c;现在来看一些关于指针的经典面试题。 再次说一下数组名 数组名通常表示的都是首元素的地址&#xff0c;但是有两个意外&#xff0c;1.sizeof&#xff08;数组名&#xff09;这里数组名…

如何在JavaScript中使用大于和小于运算符

在你的 JavaScript 程序中&#xff0c;你经常需要比较两个值&#xff0c;以确定一个是否大于另一个或小于另一个。这就是大于和小于运算符派上用场的地方。 在本文中&#xff0c;我们将通过代码示例更详细地介绍如何使用这些运算符。 &#xff08;本文内容参考&#xff1a;ja…

rabbitmq自用记录

参考博客RabbitMq安装与使用&#xff08;mac&#xff09;高效总结&#xff08;亲测&#xff09;_mac 安装rabbitmq 服务端口-CSDN博客 启动服务 这里提前把redis服务也启动了 这里看到前端更改数据,后端进行日志打印 登录后访问rabbitmq网址

java 线程安全介绍

所谓线程安全无非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型&#xff0c;要解决两个主要的问题&#xff1a;可见性和有序性。 那么&#xff0c;何谓可见性&#xff1f; 多个线程之间是不能互相传递数据通信的&#xff0c;它们之间的沟通只能通过共享变量…

MinIO 和 Apache Tika:文本提取模式

Tl;dr: 在这篇文章中&#xff0c;我们将使用 MinIO Bucket Notifications 和 Apache Tika 进行文档文本提取&#xff0c;这是大型语言模型训练和检索增强生成 LLM和RAG 等关键下游任务的核心。 前提 假设我想构建一个文本数据集&#xff0c;然后我可以用它来微调 LLM.为了做…

爬虫之牛刀小试(十):爬取某宝手机商品的销量,价格和店铺

首先淘宝需要登录&#xff0c;这一点如果用selenium如何解决&#xff0c;只能手动登录&#xff1f;如果不用selenium&#xff0c;用cookies登录也可。但是验证码又是一个问题&#xff0c;现在的验证码五花八门&#xff0c;难以处理。 我们回到正题&#xff0c;假设你已经登录上…

计算机设计大赛 深度学习YOLO图像视频足球和人体检测 - python opencv

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络4 Yolov5算法5 数据集6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习YOLO图像视频足球和人体检测 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非…

一览大模型长文本能力

前言 如今的大模型被应用在各个场景&#xff0c;其中有些场景则需要模型能够支持处理较长文本的能力(比如8k甚至更长)&#xff0c;其中已经有很多开源或者闭源模型具备该能力比如GPT4、Baichuan2-192K等等。 那关于LLM的长文本能力&#xff0c;目前业界通常都是怎么做的&…

2024年腾讯云4核8G12M服务器性能测评,适合哪些使用场景?

腾讯云4核8G服务器适合做什么&#xff1f;搭建网站博客、企业官网、小程序、小游戏后端服务器、电商应用、云盘和图床等均可以&#xff0c;腾讯云4核8G服务器可以选择轻量应用服务器4核8G12M或云服务器CVM&#xff0c;轻量服务器和标准型CVM服务器性能是差不多的&#xff0c;轻…

阿里云BGP多线精品EIP香港CN2线路低时延,价格贵

阿里云香港等地域服务器的网络线路类型可以选择BGP&#xff08;多线&#xff09;和 BGP&#xff08;多线&#xff09;精品&#xff0c;普通的BGP多线和精品有什么区别&#xff1f;BGP&#xff08;多线&#xff09;适用于香港本地、香港和海外之间的互联网访问。使用BGP&#xf…

【实战】二、Jest难点进阶(一) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(五)

文章目录 一、Jest 前端自动化测试框架基础入门二、Jest难点进阶1.snapshot 快照测试 学习内容来源&#xff1a;Jest入门到TDD/BDD双实战_前端要学的测试课 相对原教程&#xff0c;我在学习开始时&#xff08;2023.08&#xff09;采用的是当前最新版本&#xff1a; 项版本babe…

jmeter遇到连接数据库的问题

jmeter连接mysql或者oracle简单&#xff0c;但是连接过inceptor吗&#xff1f; 上货 1、下载驱动inceptor 5.1.2.jar包 2、在添加驱动那里导入 3、在JBC request中的写法 PS:没什么可说的

【C++】类和对象(五)友元、内部类、匿名对象

前言&#xff1a;前面我们说到类和对象是一个十分漫长的荆棘地&#xff0c;今天我们将走到终点&#xff0c;也就是说我们对于&#xff23;算是正式的入门了。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:高质量&#xff23;学习 &…

嵌入式中全面解析 SPI 通信协议方法

SPI 的英文全称为 Serial Peripheral Interface&#xff0c;顾名思义为串行外设接口。SPI 是一种同步串行通信接口规范&#xff0c;主要应用于嵌入式系统中的短距离通信。该接口由摩托罗拉在20世纪80年代中期开发&#xff0c;后发展成了行业规范。 SPI 是一种高速的、全双工的…

算法沉淀——优先级队列(堆)(leetcode真题剖析)

算法沉淀——优先级队列 01.最后一块石头的重量02.数据流中的第 K 大元素03.前K个高频单词04.数据流的中位数 优先队列&#xff08;Priority Queue&#xff09;是一种抽象数据类型&#xff0c;它类似于队列&#xff08;Queue&#xff09;&#xff0c;但是每个元素都有一个关联的…

嵌入式Linux平台大文件生成以及处理方法

在日常工作中&#xff0c;为了验证某些场景下的功能&#xff0c;经常需要人为构造一些大文件进行测试&#xff0c;有时需要用大文件来测试下载速度&#xff0c;有时需要用大文件来覆盖磁盘空间&#xff1b;偶尔会看到一些网络博文会教大家如何构造大文件&#xff1b;但是当需要…

杨中科 ASP.NET DI综合案例

综合案例1 需求说明 1、目的:演示DI的能力; 2、有配置服务、日志服务&#xff0c;然后再开发一个邮件发送器服务。可以通过配置服务来从文件、环境变量、数据库等地方读取配置&#xff0c;可以通过日志服务来将程序运行过程中的日志信息写入文件、控制台、数据库等。 3、说明…