Linux环境下安装并使用使用Git命令实现文件上传

news2025/7/8 13:07:31

⭐️前面的话⭐️

本篇文章将介绍在Linux环境下安装Git并使用Git实现代码上传到gitee,上传操作的核心就是三把斧,一是add,二是commit,三是push,此外还会简单介绍一下.gitignore配置文件的作用。

📒博客主页:未见花闻的博客主页
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📌本文由未见花闻原创,CSDN首发!
📆首发时间:🌴2022年11月23日🌴
✉️坚持和努力一定能换来诗与远方!
💭推荐书籍:📚《鸟哥的Linux私房菜》
💬参考在线编程网站:🌐牛客网🌐力扣🌐acwing
博主的码云gitee,平常博主写的程序代码都在里面。
博主的github,平常博主写的程序代码都在里面。
🍭作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!


📌导航小助手📌

    • 1.创建gitee仓库
    • 2.Linux下配置Git与上传
      • 2.1为Linux安装git
      • 2.2初始化仓库(git clone)
      • 2.3获取仓库文件状态(git status)
      • 2.4git上传一把斧:add
      • 2.5git上传二把斧:commit
      • 2.6git上传三把斧:push
      • 2.7有关.gitignore文件的作用


封面


1.创建gitee仓库

第一步,登录gitee,按照如下步骤新建仓库。
在这里插入图片描述

2
3

第二步,点击个人头像,找到设置点击,找到仓库空间信息选项,点击进去。
4

第三步,设置刚刚创建好的仓库,将权限改为开源。
5

6

2.Linux下配置Git与上传

2.1为Linux安装git

首先需要检查你的Linux环境下是否有安装git,可以使用下面命令来判断:

git --version
[wjhw@VM-4-15-centos linux_learning]$ git --version
git version 1.8.3.1

如果有显示版本号就表示安装好了,否则需要安装,安装Git命令如下:

yum install git

2.2初始化仓库(git clone)

在Linux下创建或者找一个目录,然后对这个目录初始化,将这个目录变为本地仓库,最简单的方法就是直接将在gitee创建好仓库中的文件直接克隆到本地,可以使用git clone 克隆项目地址命令实现。

这个地址就是你刚刚创建好的仓库的地址:
2.2
我的克隆项目地址就是:https://gitee.com/weijianhuawen/linux-learning.git

将gitee上的项目拷贝到linux,创建一个目录,然后找到需要拷贝项目的地址,最后在linux环境下输入命令:

git clone 地址
[wjhw@VM-4-15-centos ~]$ mkdir linux_learning
[wjhw@VM-4-15-centos ~]$ cd ./linux_learning
[wjhw@VM-4-15-centos linux_learning]$ git clone https://gitee.com/weijianhuawen/linux-learning.git
Cloning into 'linux-learning'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 9 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (9/9), done.

这样就能够获取线上仓库也就是gitee上的文件,也包括相关的配置文件,这样就很方便在本地创建了一个仓库。

2.3获取仓库文件状态(git status)

进入相关的目录,查看隐藏的文件可以看到.gitee.gitignore等文件,这些文件就是gitee的配置相关文件。

[wjhw@VM-4-15-centos linux-learning]$ ll -a
total 40
drwxrwxr-x 4 wjhw wjhw  4096 Nov 23 00:26 .
drwxrwxr-x 3 wjhw wjhw  4096 Nov 23 00:26 ..
drwxrwxr-x 8 wjhw wjhw  4096 Nov 23 00:26 .git
drwxrwxr-x 2 wjhw wjhw  4096 Nov 23 00:26 .gitee
-rw-rw-r-- 1 wjhw wjhw   350 Nov 23 00:26 .gitignore
-rw-rw-r-- 1 wjhw wjhw 11357 Nov 23 00:26 LICENSE
-rw-rw-r-- 1 wjhw wjhw   828 Nov 23 00:26 README.en.md
-rw-rw-r-- 1 wjhw wjhw   917 Nov 23 00:26 README.md

获取仓库的状态,就是查看仓库具体文件在仓库的状态,命令如下:

git status

[wjhw@VM-4-15-centos linux_learning]$ git status
fatal: Not a git repository (or any of the parent directories): .git //表示没有仓库
[wjhw@VM-4-15-centos linux-learning]$ git status
# On branch master
nothing to commit, working directory clean //没有提交

2.4git上传一把斧:add

接下来我们随便写一些文件或者代码,写在当前配置好gitee的目录下,或者拷贝一些文件也可以。

那我就随便写一个程序,比如hello world程序:

[wjhw@VM-4-15-centos linux-learning]$ touch hello.c
[wjhw@VM-4-15-centos linux-learning]$ vim hello.c
[wjhw@VM-4-15-centos linux-learning]$ ll
total 24
-rw-rw-r-- 1 wjhw wjhw    73 Nov 23 14:31 hello.c
-rw-rw-r-- 1 wjhw wjhw 11357 Nov 23 00:26 LICENSE
-rw-rw-r-- 1 wjhw wjhw   828 Nov 23 00:26 README.en.md
-rw-rw-r-- 1 wjhw wjhw   917 Nov 23 00:26 README.md
[wjhw@VM-4-15-centos linux-learning]$ gcc hello.c -o hello
[wjhw@VM-4-15-centos linux-learning]$ ll
total 36
-rwxrwxr-x 1 wjhw wjhw  8360 Nov 23 14:32 hello
-rw-rw-r-- 1 wjhw wjhw    73 Nov 23 14:31 hello.c
-rw-rw-r-- 1 wjhw wjhw 11357 Nov 23 00:26 LICENSE
-rw-rw-r-- 1 wjhw wjhw   828 Nov 23 00:26 README.en.md
-rw-rw-r-- 1 wjhw wjhw   917 Nov 23 00:26 README.md
[wjhw@VM-4-15-centos linux-learning]$ cat hello.c
#include <stdio.h>

int main()
{
  printf("hello linux!\n");
  return 0;
}
[wjhw@VM-4-15-centos linux-learning]$ ./hello
hello linux!

下面我们就可以开始提交代码了,总的来说就是三部曲,Add,Commit和Push。

进行add操作,将代码添加,待提交。

git add 文件名(.表示当前目录下全部文件)
[wjhw@VM-4-15-centos linux-learning]$ git add .
[wjhw@VM-4-15-centos linux-learning]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	new file:   hello
#	new file:   hello.c
#

2.5git上传二把斧:commit

进行commit操作,将代码提交到本地仓库,注意一定要写提交时的日志,因为万一程序出现bug了,可以根据提交代码所写的日志来排查。

git commit -m "日志"

如果出现以下结果,你需要配置一下全局用户邮箱和用户名:

[wjhw@VM-4-15-centos linux-learning]$ git commit -m "hell0 linux 代码"

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for <wjhw@VM-4-15-centos.(none)>) not allowed

配置命令如下:

git config --global user.email "你的邮箱"
git config --global user.name "你的用户名"

设置好后就可以正常提交了。

示例:

[wjhw@VM-4-15-centos linux-learning]$ git config --global user.email "weijianhuawen@163.com"
[wjhw@VM-4-15-centos linux-learning]$ git config --global user.name "未见花闻"
[wjhw@VM-4-15-centos linux-learning]$ git commit -m "hell0 linux 代码"
[master d6a1fc9] hell0 linux 代码
 2 files changed, 7 insertions(+)
 create mode 100755 hello
 create mode 100644 hello.c
[wjhw@VM-4-15-centos linux-learning]$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean

为什么一定要认真写提交日志呢,因为当你工作时,遇到bug了,可以查询到每个人的提交信息,此时可以通过git log查询到提交日志,大部分公司都会要求提交时必须认真写好日志,如果发现你没有写,那么很可能责任就在于你。

[wjhw@VM-4-15-centos linux-learning]$ git log
commit d6a1fc99c1004a501ddaf545ed07c55caa3bbf86
Author: 未见花闻 <weijianhuawen@163.com>
Date:   Wed Nov 23 14:48:01 2022 +0800

    hell0 linux 代码

commit 0e629a4ae2ce48f2e0c2b8dba5b5db634a85dce7
Author: 未见花闻 <weijianhuawen@163.com>
Date:   Tue Nov 22 16:19:52 2022 +0000

    Initial commit

2.6git上传三把斧:push

进行push操作将代码上传提交到远程仓库

git push -u origin master
# 第一次push需要验证密码
[wjhw@VM-4-15-centos linux-learning]$ git push -u origin master
Username for 'https://gitee.com': weijianhuawen
Password for 'https://weijianhuawen@gitee.com': 
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 2.65 KiB | 0 bytes/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/weijianhuawen/linux-learning.git
   0e629a4..d6a1fc9  master -> master
Branch master set up to track remote branch master from origin.

此时,代码就上传成功了!
ret

2.7有关.gitignore文件的作用

它是一个配置文件,我们来打开它看一看:
1

.gitignore 是一个隐藏文件,就跟这个文件的字面意思一样,它指明了在用 git 上传文件的时候需要忽略哪些文件。如果我们想要上传一个文件夹里的许多文件,但是另一些文件,比如一些配置文件,不想上传,这时我们只需要将这些文件名在 .gitignore 中指出,在使用 git add . 时就会忽略 .gitignore 里指出的文件,这样就可以用 git add . 方便地一次性上传我们想上传的文件。

就是在该配置文件下出现的文件,在add操作时都会忽略,这样可以实现文件的筛选,对于不想上传的文件,在配置文件中配置一下就可以使用git add .命令直接上传。

这个很明显我们能够看到有一部分都是后缀名,并且前面还有一个*,这个*是一个通配符,*.后缀名·它表示以当前配置文件中后缀结尾的文件都不会被提交到远程仓库,也就是被上传到gitee上。

除了*以外还有/等其他字符,其含义分别为:

  • 空行或是以#开头的行即注释行将被忽略;
  • 以斜杠 “/” 结尾表示目录;
  • 以星号 “*” 通配多个字符;
  • 以问号 “?” 通配单个字符
  • 以方括号 “[]” 包含单个字符的匹配列表;
  • 以叹号 “!” 表示不忽略(跟踪)匹配到的文件或目录;
    可以在前面添加斜杠 “/” 来避免递归,下面的例子中可以很明白的看出来与下一条的区别。

配置文件示例

忽略 .a 文件

*.a

但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件

!lib.a

仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO

/TODO

忽略 build/ 文件夹下的所有文件

build/

忽略 doc/notes.txt, 不包括 doc/server/arch.txt

doc/*.txt

忽略所有的 .pdf 文件 在 doc/ directory 下的

doc/**/*.pdf

我们来简单的演示一下,我在配置文件中添加一个后缀abc,然后我们在本地仓库(当前目录下)创建一批文件,提交到gitee,看看文件是否会被上传。

2

[wjhw@VM-4-15-centos linux-learning]$ touch file.abc file.c file.cpp file.java file.py
[wjhw@VM-4-15-centos linux-learning]$ ll
total 36
-rw-rw-r-- 1 wjhw wjhw     0 Nov 23 16:37 file.abc
-rw-rw-r-- 1 wjhw wjhw     0 Nov 23 16:37 file.c
-rw-rw-r-- 1 wjhw wjhw     0 Nov 23 16:37 file.cpp
-rw-rw-r-- 1 wjhw wjhw     0 Nov 23 16:37 file.java
-rw-rw-r-- 1 wjhw wjhw     0 Nov 23 16:37 file.py
-rwxrwxr-x 1 wjhw wjhw  8360 Nov 23 14:32 hello
-rw-rw-r-- 1 wjhw wjhw    75 Nov 23 14:32 hello.c
-rw-rw-r-- 1 wjhw wjhw 11357 Nov 23 00:26 LICENSE
-rw-rw-r-- 1 wjhw wjhw   828 Nov 23 00:26 README.en.md
-rw-rw-r-- 1 wjhw wjhw   917 Nov 23 00:26 README.md

上传到远程仓库:

[wjhw@VM-4-15-centos linux-learning]$ git add .
[wjhw@VM-4-15-centos linux-learning]$ git commit -m "ignore test"
[master 41ec2d9] ignore test
 5 files changed, 1 insertion(+)
 create mode 100644 file.c
 create mode 100644 file.cpp
 create mode 100644 file.java
 create mode 100644 file.py
[wjhw@VM-4-15-centos linux-learning]$ git push -u origin master
Username for 'https://gitee.com': weijianhuawen
Password for 'https://weijianhuawen@gitee.com': 
Counting objects: 6, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 530 bytes | 0 bytes/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/weijianhuawen/linux-learning.git
   d6a1fc9..41ec2d9  master -> master
Branch master set up to track remote branch master from origin.

我们来看看远程仓库的情况,发现没有.abc结尾的文件。

3


觉得文章写得不错的老铁们,点赞评论关注走一波!谢谢啦!

1-99

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

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

相关文章

【broadcast-service】一个轻量级Python发布订阅者框架

本文节选至本人博客&#xff1a;https://www.blog.zeeland.cn/archives/broadcast-service-description Introduction 前两天在Python最佳实践-构建自己的第三方库文章中介绍了自己构建的一个轻量级的Python发布订阅者框架&#xff0c;今天来简单介绍一下。 项目地址&#xf…

不同的量化交易软件速度差距大吗?

哪家券商的软件交易速度快&#xff1f;那个平台有极速柜台系统&#xff1f;成为了一个热门的话题&#xff0c;我来说下我的看法。其实呢&#xff0c;大部分的主流券商速度都是差不多的&#xff0c;否则的话&#xff0c;那速度有差距大家肯定都会冲向最快的那一家了。极速柜台系…

查看mysql的版本

1. mysql --version linux下使用命令&#xff1a; mysql --version 2. mysql -V 没有连接到MySQL服务器&#xff0c;就想查看MySQL的版本。打开cmd&#xff0c;切换至mysql的bin目录&#xff0c;运行下面的命令即可&#xff1a; 2.1 mysql -V e:\mysql\bin> mysql -V mys…

k8s编程operator——client-go中的informer

文章目录1、介绍1.1 简单使用1.2 List & Watch1.3 informer简介2、store2.1 ThreadSafeMap建立索引&#xff1a;threadSafeMap源码分析&#xff1a;2.2 Indexer2.3 DeltaFIFO3、reflector3.1 Reflector的定义3.2 Reflector的创建3.3 Reflector的循环执行3.4 List操作3.5 Wa…

JAVA 之 Spring框架学习 1:Springの初体验 IOC DI 注入 案例

Spring技术是JavaEE开发必备技能&#xff0c;企业开发技术选型命中率>90% 专业角度 简化开发&#xff0c;降低企业级开发的复杂性 框架整合&#xff0c;高效整合其他技术&#xff0c;提高企业级应用开发与运行效率 1.学习Spring框架设计思想 2.学习基础操作&#xff0c;思…

数据结构之选择排序(堆排序)

选择排序 选择排序分为两种一个是堆排序 一个是简单选择排序 简单选择排序 就是从头到尾扫描一遍待排序元素找出最小的 最小的之前的数的往后一位&#xff0c;第一个空间空出来 把最小的元素存入 然后从第二个空间开始变为待排序元素 最后一个元素不用处理 代码实现 算法性…

【python】根据自定义曲线函数进行拟合

【参考】 官网 curve_fit示例与评估&#xff1a;拟合curve_fit使用矫正的R^2评估非线性模型&#xff1a;拟合评估其他&#xff1a; curve_fit()实现任意形式的曲线拟合-csdn拟合优度r^2-csdn 官网示例 拟合函数&#xff1a; f(x)ae−bxcf(x)ae^{-bx}cf(x)ae−bxc import m…

Git——IDEA集成Git(详细)

目录 一、配置Git忽略文件 1.1 为什么忽略&#xff1f; 1.2 怎么忽略&#xff1f; 二. IDEA定位Git程序&#xff08;准备环境&#xff09; 三、IDEA操作Git 3.1 初始化Git本地库、添加暂存区、提交本地库 3.2 切换版本 3.3 创建分支 3.4 切换分支 3.5 合并分支 3.5.1…

存储模块 --- Cache

Cache 高速缓冲存储器 内存一般采用SDRAM芯片&#xff0c;对内存的访问肯定是不及CPU的速度的&#xff0c;通常说内存访问要比CPU的速度慢的多。也就是说内存拖后腿了。 CPU访问内存并不是完全随机的。 在某个时间段内&#xff0c;CPU总是访问当前内存地址的相邻内存地址&…

数理统计笔记5:参数估计-区间估计

引言 数理统计笔记的第5篇先介绍了参数估计的区间估计。包括单总体均值、单总体比例、单总体方差以及两总体均值之差、两总体方差之比几种常见的情况。 引言总体均值的置信区间&#xff08;σ2\sigma^2σ2已知&#xff09;-Z法总体均值的置信区间&#xff08;σ2\sigma^2σ2未知…

【Call for papers】SP-2023(CCF-A/网络与信息安全/2022年12月2日截稿)

文章目录1.会议信息2.时间节点Since 1980, the IEEE Symposium on Security and Privacy has been the premier forum for presenting developments in computer security and electronic privacy, and for bringing together researchers and practitioners in the field. The…

whylogs工具库的工业实践!机器学习模型流程与效果监控 ⛵

&#x1f4a1; 作者&#xff1a;韩信子ShowMeAI &#x1f4d8; 机器学习实战系列&#xff1a;https://www.showmeai.tech/tutorials/41 &#x1f4d8; 本文地址&#xff1a;https://www.showmeai.tech/article-detail/395 &#x1f4e2; 声明&#xff1a;版权所有&#xff0c;转…

如何理解相位噪声与时间抖动的关系?

每当介绍相位噪声测试方案时&#xff0c;都会提到时间抖动&#xff0c;经常提到二者都是表征信号短期频率稳定度的参数&#xff0c;而且是频域和时域相对应的参数。正如题目所示&#xff0c;相位噪声与时间抖动有着一定的关系&#xff0c;那么相噪是与哪种类型的抖动相对应&…

葡萄糖-聚乙二醇-醛基/羟基 Glucose-PEG-CHO/OH

葡萄糖-聚乙二醇-醛基Glucose-PEG-CHO 羰基中的一个共价键跟氢原子相连而组成的一价原子团&#xff0c;叫做醛基&#xff0c;醛基结构简式是-CHO&#xff0c;醛基是亲水基团&#xff0c;因此有醛基的有机物&#xff08;如乙醛等&#xff09;有一定的水溶性。 葡萄糖-聚乙二醇…

ILRuntime热更的小技巧

文章目录前因后果前因 因为ILRuntime热更项目直接打包出来的DLL不能放置到AssetBundle里面打包所以我看网上的代码都是读取DLL的bytes然后放置到一个text文件里面后缀是bytes public class DefaultPath {public static string ProjectRootPath Environment.CurrentDirectory…

超市便利店微信小程序引流拉新_分享超市便利店微信小程序开发的作用

作为消费主力的年轻人&#xff0c;习惯用手机。习惯在手机下单&#xff0c;享受足不出户的方便快捷。 再加上疫情反复&#xff0c;线上购物&#xff0c;无接触配送显得更安全卫生。 再这样的市场环境下&#xff0c;做一个线上的超市小程序&#xff0c;就能解决很多问题&…

SpringCloud学习笔记(三)

文章目录SpringCloud学习笔记(一)1.Ribbon 概述2.负载均衡3.Ribbon 快速入门3.1 本次调用设计图3.2 项目搭建3.3 创建 provider-1和provider-23.4 编写 provider-1 和 provider-23.5 创建 consumer3.6 编写 consumer 的启动类3.7 编写 consumer 的 ConsumerController3.8 启动测…

83.Django项目中使用验证码

1. 概述 ​ 验证码&#xff08;CAPTCHA&#xff09;是“Completely Automated Public Turing test to tell Computers and Humans Apart”&#xff08;全自动区分计算机和人类的图灵测试&#xff09;的缩写&#xff0c;是一种区分用户是计算机还是人的公共全自动程序。可以防止…

分布式节能聚类算法(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

MySQL隔离级别的底层理解(MVCC+锁)

MySQL事务的隔离级别和并发的关系 mysql是一个C/S架构的软件, 也就意味着, 同一个mysql服务器可能同时存在很多的clients集合来访问. 此时最重要的是什么? 并发性. 并发时候的安全. 并发和数据库安全性本来就是相互矛盾的。要保证更好的安全性最好的方式是什么? 完全舍弃并…