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

举报
未见花闻 发表于 2022/11/30 21:32:48 2022/11/30
【摘要】 ⭐️前面的话⭐️本篇文章将介绍在Linux环境下安装Git并使用Git实现代码上传到gitee,上传操作的核心就是三把斧,一是add,二是commit,三是push,此外还会简单介绍一下.gitignore配置文件的作用。 1.创建gitee仓库第一步,登录gitee,按照如下步骤新建仓库。第二步,点击个人头像,找到设置点击,找到仓库空间信息选项,点击进去。第三步,设置刚刚创建好的仓库,将权...

⭐️前面的话⭐️

本篇文章将介绍在Linux环境下安装Git并使用Git实现代码上传到gitee,上传操作的核心就是三把斧,一是add,二是commit,三是push,此外还会简单介绍一下.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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。