Git知识文章
GitBash创建分支(二)
如何利用gitBash命令行方法创建分支并合并分支(三)
IDEA如何使用git管理gitee仓库?(四)
前提介绍:
首先要有华为云账号,自己上官网注册认证即可。华为云官网
- workplace:工作区(1区),比如自己的IDEA
- Index:暂存区(2区),电脑的缓存区
- Repository:本地仓库(3区),本地电脑创建的文件夹
- Remote:远程仓库(4区),比如Github,Gitee,Gitlab,华为云
这时候有小伙伴会问为什么要用Index,直接提交到仓库不好吗?其实不然,没了Index的话,workplace需要一次一次的向Repository提交自己的文件,很累。比如你去超市买东西,没有Index(类似购物车的作用),提交事务(类似买单),你有很多东西需要去买,没有购物车,你只好跑很多趟,最终才买完需要的东西,太繁琐了。
这个时候如果有购物车,把你需要买的东西全部放到购物车里面,直接一次性去买单,就不要走很多次才完成买单的操作。即Index类似打包功能。
//额外穿插一个知识点:分布式概念(分布式就是两台或者以上的机器都拥有同一份数据,即服务器有数据A,PCA也有数据A,PCB也有数据B,如果服务器挂了,PCA照样能运行)
//git部分代码介绍
git init//初始化仓库
git config --global user.name "XiaoGuiZhe@126.com"//全集代理
git config --global user.email "XiaoGuiZhe@126.com"
git status//查看当前仓库情况
git diff//命令比较文件的不同,即比较文件在暂存区和工作区的差异
git add .// 把当前修改过的文件缓存到Index
git commit -m "创建maven工程"//提交事务到Repository仓库,-m文字注释
ssh-keygen -t rsa -C "XiaoGuiZhe@126.com"//创建秘钥,之后给服务器
git remote add origin2 "远程仓库的SSH或HTTPS"//关联远程仓库,add "远程仓库的别名"
//HTTPS每次都需要用户名和密码验证,SSH首次需要自己创建邮箱的密码验证,SSH采用rsa非对称加密形式加密。
git push origin2 master//把master这个分支的内容push到远程仓库origin2中
/*
这里有一个概念,假如我们使用公私钥加密,服务器采用私钥加密,而我们的PC拥有的是公钥。
·私钥加密,拥有公钥或者私钥都可以解密
·公钥加密,只拥有私钥才可以解密
分析原因:
假设服务器采用公钥加密,PC则拥有私钥,这个时候有一些恶意者,伪造一些假的秘钥,假扮成服务器,拿着伪造的秘钥加密,这个时候PC拥有私钥可以解密,就被侵入了。
如果服务器采用私钥加密,PC拥有公钥,这个时候有一些恶意者(只能从PC获得),伪造一些假的公钥,假扮成服务器,拿着伪造的公钥加密,去测试PC,但PC只有公钥,而公钥加密只能拥有私钥才能解密,故入侵失败。
*/
workplace通过 git add . 把当前修改过的文件缓存到 Index, Index再通过 git commit
步骤演示
前提:已经安装好Git
一、创建远程仓库
服务——代码托管——普通创建。
二、创建本地仓库
我在E盘下创建一个git本地仓库,例如E:\gitRepository
$ cd E:\\gitRepository
$ git init
$git config --global user.name "XiaoGuiZhe@126.com"//全集代理
$git config --global user.email "XiaoGuiZhe@126.com"//用于验证,这个邮箱是github注册的
三、创建私钥以及关联远程仓库
ssh-keygen -t rsa -C "XiaoGuiZhe@126.com"//创建秘钥,之后给服务器
//直接按回车就好,采用默认值。
创建秘钥的默认位置为c:/Users/自己的电脑名字/.ssh
如果想换成指定位置,看下面代码,注意要加上id_rsa
用记事本打开id_rsa.pub,复制公钥里面的内容
回到华为云的代码托管,点击创建我的SSH秘钥,把刚刚的秘钥粘贴上去
四、把需要的上传的文件拉到gitRepository
例如我在该文件下创建一个test.txt,并把它推到远程仓库上
//初始化项目
git init
//点击SSH得到对应远程仓库的链接,进行关联
git remote add origin2 "远程仓库的SSH或HTTPS"//关联远程仓库,add "远程仓库的别名"
// 例如:git remote add origin2 git@codehub-cn-south-xxxxx
git add .
git commit -m "CSDN_Test"//-m "CSDN_Test"文字注释
git push origin2 master//把master这个分支的内容push到远程仓库origin2中
五、上传异常
原因分析:可能当前的分支不是最新的,需要自己pull该分支下来,确保自己是最新的分支。
解决办法:
git pull origin2 master // origin是自己设置的远程仓库别名
//如果进入Linux画面,首先意思是让你添加备注信息或者有什么其他的命令需要加上。
:wq//如果没有,输入:wq保存退出即可。
若尚未解决,出现如下情况:
原因分析:这是因为本地分支与远程分支没有共同祖先
解决方法:
git pull origin master --allow-unrelated-histories
#允许无关历史节点。
最后
在确保自己是最新的分支后,再次把文件推上即可
git push origin2 master
扩展
下面展示如何从CODE CHINA上下载代码!
CODE CHINA——开源代码托管平台,独立第三方开源社区,Git/Github/Gitlab
1.创建秘钥的默认位置为c:/Users/自己的电脑名字/.ssh
2.用记事本打开id_rsa.pub,复制公钥里面的内容
3.添加到对应仓库网站的SSH秘钥中!
4.在自己电脑,需要存放的代码文件夹下,执行git clone “SSH链接”