继对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
1
这句话的意思是初始一个本地仓库,之后可以看到在该文件夹下多了一个.git文件夹,用于记录所有与管理本仓库相关的文件,
所以请小心改动。
三、进行代码托管
本地代码仓库和远程代码仓库都创建好之后,需要把它们进行同步才能在gitee上进行代码托管。
1.本地代码仓库与远程代码仓库进行同步,执行代码:
git remote add origin https://gitee.com/gxx_gitee/testGit.git
1
其中远程库的名字就是origin,这是git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
我试验过origin可以改为项目名,或者和项目名不同也都是可以的,因为重要的是后面的url,每个远程代码库都有一个自己的url,
所以本地仓库本质上是和这个url所指代的远程仓库进行关联的。
2.拉取远程代码库
由于在创建远程仓库时会初始化一个README.md文件,而本地仓库里没有,所以需要先执行pull操作将远程仓库拉取合并到本地仓库,否则会出错。执行代码:
git pull origin master
1
【注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 "对该操作的相关描述"
1
2
可以看到,git追踪到了仓库中文件的变化,所以说git起到了作用。现在执行push操作将它推送到远程代码库:
git push
git push --set-upstream origin master
1
2
【注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
1
然后就会发现在该盘下面就有了一个同名文件夹,并且.git目录和README.md文件都有,这两个代码仓库都已经同步好了:
三、进行代码托管
向远程代码仓库同步文件(例如在本地代码仓库中新建了test1.txt和test2.txt文件,现把它们同步到远程代码仓库),进入到该文件下,执行代码:
git add .
git commit -m "对该操作的相关描述"
1
2
可以看到,git追踪到了仓库中文件的变化,所以说git起到了作用。现在执行push操作将它推送到远程代码库:
git push
1
【注4:这里可以直接使用git push命令,因为远程创建了代码仓库,git默认关联的库在远程,git push是默认推送到远程库master分支】
刷新远程代码仓库,可以看到文件被成功的同步到了远程仓库:
【说明】:
很明显,这种方式就简单多啦~
使用git命令时遇到的很多问题,其实根据错误提示都可以自己修正,或者可以直接执行git查看git命令,对于具体某个命令的使用可以执行git 命令的名字 -help查看详情。