原创

码云gitee+git入门篇(二)——代码托管

书接上回:码云gitee+git入门篇(一)——简介、git安装
继对gitee和git的简单介绍以及git安装之后,这篇博客主要介绍如何使用git命令,从而在码云上进行代码托管。
首先,参考码云平台帮助文档先介绍一下git中的几个重要概念:分支、提交、拉取和推送,有助于帮助理解下面的内容。

1. 分支(git branch命令)

git默认分支一般是master,当然,这是可以修改的,我们在master完成一次开发,生成了一个稳定版本,那么当需要添加新功能或者做修改时,只需要新建一个分支,然后在该分支上开发,完成后合并到主分支即可,分支功能解决了正在开发的版本与上线版本稳定性冲突的问题。

2. 提交(git commit命令)

git对于版本的管理其实是对提交的管理,git使用40个字节长度的16进制字符串来标识每一个提交,每一个提交具有唯一的标识,根据这个标识可以任意回退。

3. 拉取(git pull命令)

用于取回远程仓库某个分支的更新,再与本地仓库合并。

4. 推送(git push命令)

用于把本地的代码更新到远程仓库。

一、创建远程代码仓库
1. 登陆gitee账号:
这里写图片描述
2. 新建项目:
这里写图片描述
点击新建后,可以看到远程代码仓库创建成功,并且有一个README.md文件:
这里写图片描述

二、创建本地代码仓库
1. 在本地一个盘下新建一个文件夹,当作本地代码仓库,也就是说希望之后这个文件夹里的文件的改动都能被git进行管理。
例如我在F盘内新建一个名为testGit的文件夹:
这里写图片描述
2. 在该文件内按住Shift键并点击鼠标右键,选择”在此处打开Powershell窗口“,bash,进入Linux环境(刚安装了Ubuntu,因为打算学点Linux命令,嘿嘿,如果没有安装Ubuntu,就不需要bash,直接执行git命令就行)执行代码:

git init

这里写图片描述
这句话的意思是初始一个本地仓库,之后可以看到在该文件夹下多了一个.git文件夹,用于记录所有与管理本仓库相关的文件,
所以请小心改动。
这里写图片描述

三、进行代码托管
本地代码仓库和远程代码仓库都创建好之后,需要把它们进行同步才能在gitee上进行代码托管。

1.本地代码仓库与远程代码仓库进行同步,执行代码:

git remote add origin https://gitee.com/gxx_gitee/testGit.git

其中远程库的名字就是origin,这是git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

我试验过origin可以改为项目名,或者和项目名不同也都是可以的,因为重要的是后面的url,每个远程代码库都有一个自己的url,
所以本地仓库本质上是和这个url所指代的远程仓库进行关联的。
这里写图片描述

2.拉取远程代码库
由于在创建远程仓库时会初始化一个README.md文件,而本地仓库里没有,所以需要先执行pull操作将远程仓库拉取合并到本地仓库,否则会出错。执行代码:

git pull origin master

这里写图片描述
注1:由于在本地创建了代码仓库,git默认关联的库在本地,所以直接执行git pull命令是无效的,需要执行git pull origin master命令才行,这句话的意思是推送到远程库master分支,此外,也可以根据提示执行一下git branch --set-upstream origin master命令,以后就可以直接使用git pull了】

此时可以看到在本地代码仓库中多了一个README.md文件。
这里写图片描述

注2:如果遇到错误提示“fatal: refusing to merge unrelated histories”,出现这种错误是因为git会以为这两个仓库不同所以进行无法合并,在执行pull操作时添加–allow-unrelated-histories,即执行git pull origin master --allow-unrelated-histories就可以了】

3.向远程代码仓库推送文件(例如在本地代码仓库中新建了test1.txt和test2.txt文件,现把它们同步到远程代码仓库),执行代码:

git add .
git commit -m "对该操作的相关描述"

这里写图片描述
可以看到,git追踪到了仓库中文件的变化,所以说git起到了作用。现在执行push操作将它推送到远程代码库:

git push
git push --set-upstream origin master

这里写图片描述
注3:这里使用git push命令会和上面使用git pull时出现同样的问题,根据提示git push --set-upstream origin master,以后就可以直接使用git push命令了】
刷新远程代码仓库,可以看到文件被成功的同步到了远程仓库:
这里写图片描述

当然,同步一个文件夹到远程仓库与同步单个文件相同,只不过无法同步空文件夹到远程仓库,因为git会认为没有改动。

参考连接:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000,感谢作者。

【说明】:
很明显,这种方式在代码仓库同步上比较繁琐,所以我也不是很推荐,但是理解这种方式还是很重要的,下面介绍一种简单点的方式。


一、创建远程代码仓库
同上。例如我在gitee上创建了项目testGit1,每个远程代码库都有一个自己的url:
这里写图片描述
二、克隆项目到本地
在本地一个盘下按住Shift键并点击鼠标右键,选择”在此处打开Powershell窗口“,bash,进入Linux环境(如果没有安装Ubuntu,就不需要bash,直接执行git命令就行)执行代码:

git clone 项目的url

这里写图片描述
然后就会发现在该盘下面就有了一个同名文件夹,并且.git目录和README.md文件都有,这两个代码仓库都已经同步好了:
这里写图片描述

三、进行代码托管
向远程代码仓库同步文件(例如在本地代码仓库中新建了test1.txt和test2.txt文件,现把它们同步到远程代码仓库),进入到该文件下,执行代码:

git add .
git commit -m "对该操作的相关描述"

这里写图片描述
可以看到,git追踪到了仓库中文件的变化,所以说git起到了作用。现在执行push操作将它推送到远程代码库:

git push

这里写图片描述

注4:这里可以直接使用git push命令,因为远程创建了代码仓库,git默认关联的库在远程,git push是默认推送到远程库master分支】
刷新远程代码仓库,可以看到文件被成功的同步到了远程仓库:
这里写图片描述

【说明】:
很明显,这种方式就简单多啦~
使用git命令时遇到的很多问题,其实根据错误提示都可以自己修正,或者可以直接执行git查看git命令,对于具体某个命令的使用可以执行git 命令的名字 -help查看详情。

正文到此结束