Git在码云上的使用指南:从安装到推送远程仓库

Git在码云上的使用指南:从安装到推送远程仓库

目录

目录

前言:

1、git的安装

1.1.Linux-centos环境下安装

1.2.Linux-ubuntu环境下安装

2.创建Git本地仓库

3.配置Git

4.认识⼯作区、暂存区、版本库

5.添加文件

5.1.git命令

5.2.commit命令

6.远程操作

6.1.新建远程仓库

6.2.克隆远程仓库:

6.3.向远程仓库推送push

7.拉取远程仓

前言:

本文介绍了如何使用git在码云上创建远程仓库,并将本地的代码push到码云的远程仓库上。

1、git的安装

1.1.Linux-centos环境下安装

⾸先,你可以试着输入Git,看看系统有没有安装Git:

git
-bash: git: command not found

如果出现上面的结果,说明你并没有安装Git。

安装git命令:

sudo yum -y install git

查看git安装的版本

git --version

1.2.Linux-ubuntu环境下安装

⾸先,你可以试着输⼊Git,看看系统有没有安装Git:

git
Command 'git' not found, but can be installed with:
sudo apt install git

如果出现上面的结果,说明你并没有安装Git。

安装git

sudo apt-get install git -y

查看git安装版本

git --version

2.创建Git本地仓库

仓库是进行版本控制的⼀个文件目录。我们要想对文件进行版本控制,就必须先创建⼀个仓库出来。所以本地仓库和远程仓库本质上都是一个文件!这也印证了一句话Linux下一切皆文件

指令:

git init

 注意我们不能修改原先git仓库的所有内容,不然会导致正常的git操作会出错

3.配置Git

当安装Git后首先要做的事情是设置你的用户名称和e-mail地址,这是非常重要的。配置命令为:

git config [--global] user.name "Your Name" 
git config [--global] user.email "[email protected]
# 把 Your Name 改成你的昵称
# 把 [email protected] 改成邮箱的格式,只要格式正确即可。

其中 --global 是⼀个可选项。如果使用了该选项,表示这台机器上所有的Git仓库都会使用这个配置。如果你希望在不同仓库中使⽤不同的name 或e-mail ,可以不要 --global 选项,但要注意的是,执⾏命令时必须要在仓库⾥。

查看配置命令为:

git config -l

下面是我的成功配置后的文件

删除对应的配置命令为:

git config [--global] --unset user.name
git config [--global] --unset user.email

4.认识⼯作区、暂存区、版本库

  • ⼯作区:是在电脑上你要写代码或⽂件的⽬录。
  • 暂存区:英⽂叫stage或index。⼀般存放在.git⽬录下的index⽂件(.git/index)中,我们把暂存区有时也叫作索引(index)。
  • 版本库:⼜名仓库,英⽂名repository 。⼯作区有⼀个隐藏⽬录 .git ,它不算⼯作区,⽽是Git的版本库。这个版本库⾥⾯的所有⽂件都可以被Git管理起来,每个⽂件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
  1. 图中左侧为工作区,右侧为版本库。Git 的版本库里存了很多东西,其中最重要的就是暂存区。
  2. 在创建 Git 版本库时,Git 会为我们自动创建一个唯一的 master分支,以及指向 master 的一个指针叫 HEAD。
  3. 当对工作区修改(或新增)的文件执行 git add 命令时,暂存区目录树的文件索引会被更新。
  4. 当执行提交操作 git commit 时,master分支会做相应的更新,可以简单理解为暂存区的目录树才会被真正写到版本库中。

由上述描述我们便能得知:通过新建或粘贴进⽬录的⽂件,并不能称之为向仓库中新增⽂件,⽽只是在⼯作区新增了⽂件。必须要通过使⽤git add和git commit命令才能将⽂件添加到仓库中进⾏管理!!!

5.添加文件

5.1.git命令

在包含.git 的目录下新建一个ReadMe文件,我们可以使用 git add 命令可以将文件添加到暂存

添加一个或多个文件到暂存区:

git add [filel] [file2] ...

添加指定自录到暂存区,包括子目录:

git add [dir]

添加当前目录下的所有文件改动到暂存区:

git add .

5.2.commit命令

再使用 git commit 命令将暂存区内容添加到本地仓库中:
提交暂存区全部内容到本地仓库中:

git commit-m"message"

提交暂存区的指定文件到仓库区:

git commit [file1][file2] -m "message"

6.远程操作

6.1.新建远程仓库

新建远程项⽬仓库:

6.2.克隆远程仓库:

克隆/下载远端仓库到本地,需要使⽤ git clone 命令,后⾯跟上我们的远端仓库的链接,远端仓库的链接可以从仓库中找到:选择“克隆/下载”获取远程仓库链接

SSH协议和HTTPS协议是Git最常使⽤的两种数据传输协议。SSH协议使⽤了公钥加密和公钥登陆机制,体现了其实⽤性和安全性,使⽤此协议需要将我们的公钥放上服务器,由Git服务器进⾏管理。使⽤HTTPS⽅式时,没有要求,可以直接克隆下来。

我们这里直接采用最简单的方法:使用HTTPS协议。

clone命令:

git clone 远程仓库克隆的网站

这个网址在哪里找呢? 点击下方红色按钮,然后直接复制即可

当我们从远程仓库克隆后,实际上Git会⾃动把本地的master分⽀和远程的master分⽀对应起来,并且,远程仓库的默认名称是origin 。在本地我们可以使⽤ git remote 命令,来查看远程库的信息,如:

⽤ git remote -v 显⽰更详细的信息:

上⾯显⽰了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。推送是什么意思呢,我们继续往下看。

6.3.向远程仓库推送push

本地已经 clone 成功远程仓库后,我们便可以向仓库中提交内容,例如新增⼀个 file.txt ⽂件:

# 新建⽂件
hyb@139-159-150-152:~/git_teaching$ ls
README.en.md README.md
hyb@139-159-150-152:~/git_teaching$ vim file.txt
hyb@139-159-150-152:~/git_teaching$ cat file.txt 
hello git
# 提交⽂件
hyb@139-159-150-152:~/git_teaching$ git add .
hyb@139-159-150-152:~/git_teaching$ git commit -m"create file.txt"
[master 7ce3183] create file.txt
 1 file changed, 1 insertion(+)
 create mode 100644 file.txt

提交时要注意,如果我们之前设置过全局的 name 和 e-mail,这两项配置需要和 gitee 上配置的用户名和邮箱一致,否则会出错。或者从来没有设置过全局的 name和 e-mail,那么我们第一次提交时也会报错。这就需要我们重新配置下了,同样要注意需要和 gitee 上配置的用户名和邮箱一致。

到这⾥我们已经将内容提交⾄本地仓库中,如何将本地仓库的内容推送⾄远程仓库呢,需要使⽤ git push 命令,该命令⽤于将本地的分⽀版本上传到远程并合并,命令格式如下:

git push <远程主机名> <本地分⽀名>:<远程分⽀名>
# 如果本地分⽀名与远程分⽀名相同,则可以省略冒号:
git push <远程主机名> <本地分⽀名>

此时我们要将本地的master分⽀推送到origin主机的master分⽀,则可以:

hyb@139-159-150-152:~/git_teaching$ git push origin master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 308 bytes | 308.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:hyb91/git_teaching.git
 c6ce3f0..7ce3183 master -> master

推送成功!

7.拉取远程仓库

如果我们在远程仓库进行更改的时候,我们本地是看不见的。

此时,远程仓库是要领先于本地仓库一个版本,为了使本地仓库保持最新的版本,我们需要拉取下远端代码,并合并到本地。Git提供了 git pull 命令,该命令用于从远程获取代码并合并本地的版本。格式如下:

git pull <远程主机名> <远程分支名>:<本地分支名>

# 如果远程分⽀是与当前分⽀合并,则冒号后⾯的部分可以省略。

git pull <远程主机名>  <远程分支名>

使用一下:
 

# 拉取远程分⽀,并与当前分⽀进⾏合并 hyb@139-159-150-152:~/git_teaching$ git pull origin master remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Compressing objects: 100% (3/3), done. remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), 1.02 KiB | 1.02 MiB/s, done. From gitee.com:hyb91/git_teaching * branch master -> FETCH_HEAD 7ce3183..60e6b0a master -> origin/master Updating 7ce3183..60e6b0a Fast-forward README.md | 2 ++ 1 file changed, 2 insertions(+) hyb@139-159-150-152:~/git_teaching$ cat README.md ... 第⼀次修改内容

我们发现,拉取成功了!

Read more

【贪心算法】day4

【贪心算法】day4

📝前言说明: * 本专栏主要记录本人的贪心算法学习以及LeetCode刷题记录,按专题划分 * 每题主要记录:(1)本人解法 + 本人屎山代码;(2)优质解法 + 优质代码;(3)精益求精,更好的解法和独特的思想(如果有的话);(4)贪心策略正确性的 “证明” * 文章中的理解仅为个人理解。如有错误,感谢纠错 🎬个人简介:努力学习ing 📋本专栏:C++刷题专栏 📋其他专栏:C语言入门基础,python入门基础,C++学习笔记,Linux 🎀ZEEKLOG主页 愚润泽 你可以点击下方链接,进行其他贪心算法题目的学习 点击链接开始学习贪心day1贪心day2贪心day3贪心day4贪心day5贪心day6贪心day7贪心day8贪心day9贪心day10 也可以点击下面连接,学习其他算法 点击链接开始学习优选专题动态规划递归、搜索与回溯贪心算法 题单获取→ 【贪心算法】题单汇总 题目 * 122. 买卖股票的最佳时机 II * 个人解 * 1005. K

By Ne0inhk
力扣校招算法通关:双指针技巧全场景拆解 —— 从数组操作到环检测的高效解题范式

力扣校招算法通关:双指针技巧全场景拆解 —— 从数组操作到环检测的高效解题范式

文章目录 * 前言 * 双指针 * 例题讲解 * 移动零 力扣 * 复写零 力扣 * 快乐数 力扣 * 盛最多水的容器 力扣 * 有效三角形的个数 力扣 * 查找总价格为目标值的两个商品 力扣 * 三数之和 力扣 前言 在力扣校招算法题中,双指针技巧是一类高频且实用的解题方法。它并非真正的 “指针”,而是通过两个数组下标(或迭代器)的协同移动,在数组划分、区间求解、环检测等场景中实现高效遍历与逻辑处理,往往能将时间复杂度从暴力法的 O(n平方)优化至O(n),是校招笔试和面试中突破数组类难题的关键武器。 本专栏将围绕力扣校招高频的双指针题型展开,从 “移动零”“复写零” 的数组操作,到 “快乐数” 的环检测、“盛最多水的容器” 的区间优化,再到 “三数之和” 的多指针协同,逐一拆解双指针的核心逻辑、边界处理与去重技巧,

By Ne0inhk
极致性能的服务器Redis之Hash类型及相关指令介绍

极致性能的服务器Redis之Hash类型及相关指令介绍

目录 1. Hash介绍 2. hset 3. hget 3. hdel 5. hkeys 6. hvals 编辑 7. hgetall  8. hexists 9. hmget 10. hlen 11. hsetnx 12. hincrby 13. hincrbyfloat 1. Hash介绍 Redis 哈希类型是键值对的集合,字段与值均支持字符串、数字等类型,适合建模用户信息、配置项等对象类数据。其支持单字段 / 多字段的增删改查、字段存在性判断、值自增自减等原子操作,且底层通过压缩列表或哈希表优化存储,空间利用率高、查询效率快,是 Redis 中存储结构化数据的核心类型之一。 在Redis中因为本身就是按照哈希的KV结构来进行存储的,所以当我们想要使用Redis里面的哈希的时候,实际上是哈希的哈希,在后者中,

By Ne0inhk
Flutter for OpenHarmony: Flutter 三方库 collection 为鸿蒙端处理海量业务数据提供算法级的集合操作支持(数据处理瑞士军刀)

Flutter for OpenHarmony: Flutter 三方库 collection 为鸿蒙端处理海量业务数据提供算法级的集合操作支持(数据处理瑞士军刀)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 的复杂业务逻辑开发时,我们经常需要处理各种 Lists、Sets 和 Maps: 1. 数据分组:如何将成百上千条鸿蒙日志按日期自动归类(GroupBy)? 2. 集合对比:如何判断两个鸿蒙节点的状态列表是否内容一致(无视顺序)? 3. 优先级队列:如何在鸿蒙任务调度中自动让高优先级的任务插队排在第一位? collection 软件包是 Dart 官方团队维护的“集合增强包”。它补齐了原生态集合操作在算法层面的短板,为鸿蒙开发者提供了一套工业级、高性能的数据处理函数库。 一、高级数据处理模型 collection 在基础 List/Map 之上增加了丰富的算法维度。 鸿蒙原始迭代器 (Iterable) 分组与聚合 (GroupBy) 特殊数据结构 (Queue/Heap) 业务最终态 深层对比 (Equality)

By Ne0inhk