Git keyGen
在对gitlab进行远程连接前,第一步是将git的公钥交给远程仓库
在这个步骤中,需要使用git命令行对本机的公私钥进行生成。
生成算法很多种,这里只知道两种 rsa和ed25519
其生成指令分别为:
ssh-keygen -t ed25519 -C "your_email@example.com"
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
从指令中可以看出, -t是用来指定加密的算法,其中,ed25519生成的公私钥相对更短。
如果该加密算法支持的时候,远端仓库将会报错:
The form contains the following error:
Fingerprint cannot be generated
Git fork update
在一些时候需要同步被自己fork的仓库的代码更新。
为了保证自己修改过的代码不被丢失,所以需要先提交一次
提交方法:使用git add .
Git commit -m ""
之后,再去给自己本地仓库的代码增加源分支,,,在此处给该分支命名为upstream
。
git remote add upstream ${代码地址}
【可选】核实一下自己远端分支的列表
git remote -v
同样,可以通过指令去移除远端分支列表
git remote remove ${name}
fetch源分支的新版本到本地
git fetch upstream
合并两个版本的代码
git merge upstream/master
最后提交合并后的代码
git push
提交分支到仓库
提交分支到本地仓库
如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做:
$ git push origin test:master
// 提交本地test分支作为远程的master分支 //好像只写这一句,远程的github就会自动创建一个test分支
$ git push origin test:test
// 提交本地test分支作为远程的test分支
提交分支到别人的仓库
1、clone其他人的项目,然后使用上述的推送方法,推送到origin的远端仓库下【因为clone的地址默认为origin仓库】
2、fork其他人的项目,然后添加fork的远端仓库地址到自己的本地仓库里,并且另外命名,之后使用指令
$ git push ${name} test:master
// 提交本地test分支作为远程的master分支 //好像只写这一句,远程的github就会自动创建一个test分支
$ git push ${name} test:test
// 提交本地test分支作为远程的test分支
踩坑
Git pull origin lightats8:lightats8时报错(non-fast-forward)
原因:
未关联到远程分支
解决办法:
git branch --set-upstream ${branchName} origin/${fetchBranchName}
将 ${branchName}
关联到远程仓库的origin/${fetchBranchName}
分支上。
之后再使用Git pull origin lightats8:lightats8
就可以成功拉去线上分支了。