【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.hqwc.cn/news/465536.html

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

相关文章

AI-数学-高中-25-三角函数一三角函数对称性

原作者视频&#xff1a;【三角函数】【考点精华】3三角函数对称性&#xff08;重要&#xff09;&#xff08;中档&#xff09;_哔哩哔哩_bilibili 1.一个对称点\直线思路&#xff1a; 2.关于两点或两直线对称&#xff1a; 3.两个对称&#xff1a;一个关于点对称、一个关于直线…

26.篮球练习

Description 小徐酷爱打篮球&#xff0c;在小学期的前两周半都在练习篮球。今天&#xff0c;小徐想要练习如何突破。 练习场地可由如下所示的网格图表示&#xff0c;图中的位置可用坐标表示。 其中A点(0,0)为小徐的起始位置&#xff0c;B点(n,m)为小徐想要到达的位置。 一起训…

快速搭建 nfs 环境, 解决 nfs 搭建时的疑难杂症

博客原文 nfs 环境搭建 简介: NFS&#xff08;Network File System&#xff09;即网络文件系统&#xff0c;是FreeBSD支持的文件系统中的一种&#xff0c;它允许网络中的计算机之间共享资源。 在NFS的应用中&#xff0c;本地NFS的客户端应用可以透明地读写位于远端NFS服务器上…

22年中科院1区算法|白鲸优化器BWO原理及其利用与改进(Matlab/Python)

文章来源于我的个人公众号&#xff1a;KAU的云实验台&#xff0c;主要更新智能优化算法的原理、应用、改进 CEC2005中的测试 本文KAU将介绍一个2022年发表在中科院1区期刊KBS上的优化算法——白鲸优化算法(Beluga Whale Optimization&#xff0c;BWO)[1] 该算法由大连理工…

STM32单片机的基本原理与应用(七)

超声波测距实验 基本原理 超声波测距实验是STM32单片机通过控制HC-SR04超声波模块&#xff0c;使其发送超声波&#xff0c;遇到物体反射回超声波来实现距离测量&#xff0c;其原理就是在发射超声波到接收超声波会有一段时间&#xff0c;而超声波在空气中传播的速度为声速&…

【大厂AI课学习笔记】【1.6 人工智能基础知识】(3)神经网络

深度学习是机器学习中一种基于对数据进行表征学习的算法。观测值(例如一幅草莓照片)可以使用 多种方式来表示&#xff0c;如每个像素强度值的向量&#xff0c;或者更抽象地表示成一系列边、特定形状的区域等。 深度学习的最主要特征是使用神经网络作为计算模型。神经网络模型 …

汉服租赁网站:Java技术的文化应用

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

指纹浏览器能为TikTok运营提供哪些便利?

在数字时代&#xff0c;TikTok已成为全球短视频平台的佼佼者&#xff0c;吸引了数以亿计的活跃用户。为了更有效地进行TikTok运营&#xff0c;许多人开始探索先进的工具和技术。本文将重点探讨指纹浏览器如何为TikTok运营提供便利&#xff0c;提高账户管理的效率和安全性。 1.账…

用code去探索理解Llama架构的简单又实用的方法

除了白月光我们也需要朱砂痣 我最近也在反思&#xff0c;可能有时候算法和论文也不是每个读者都爱看&#xff0c;我也会在今后的文章中加点code或者debug模型的内容&#xff0c;也许还有一些好玩的应用demo&#xff0c;会提升这部分在文章类型中的比例 今天带着大家通过代码角度…

Ubuntu Desktop - Details (设备详情)

Ubuntu Desktop - Details [设备详情] 1. OverviewReferences 1. Overview System Settings -> Details -> Overview ​ References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

学习Android的第十天

目录 Android CheckBox 复选框 获得选中的 CheckBox 的值 自定义点击效果 改变文字与选择框的相对位置 修改文字与选择框的距离 Android ToggleButton 开关按钮 改变 ToggleButton 的状态和文本 Android Switch 开关 改变 Switch 的状态和文本 Android CheckBox 复选框…

骑砍战团MOD开发(44)-可编程渲染管线shader编程

一.可编程渲染管线 在GPU进行3D模型投射到2D平面过程中,渲染管线算法对开发者开放,目前支持的编程语言有OpenGL的ARB语言(pp文件),Direct3D的HLSL高级shader编程语言(fx文件). Direct3D提供一下API实现程序加载shader着色器文件: D3DXCreateEffectFromFile(gDevice,"fxfn…