同一电脑使用git的不同的版本管理(gitlab与github)

211 阅读4分钟

第一次写,可能写的比较乱,主要用来记录一下,以防下次再用到又忘记了!。多的不说了,直蹦主题吧。希望有不对的地方,过路大佬帮忙指正(也没大佬会看这么辣鸡的东西吧!哈哈哈)。

问题:在把自己本地写的一些东西放到github上,在使用ssh地址连接远程仓库时,连接不上;主要的问题是sshkey的问题。以下是我操作的流程:

第一步:在要上传的文件夹中右击打开Git Bash命令窗口输入git init,让当前文件夹变成Git可管理的仓库,即本地仓库。

这时你会发现文件夹projectvue里面多了个.git文件夹,它是Git用来跟踪和管理版本库的,因为它默认是隐藏文件,要是看不到就设置下文件夹和搜索选项。

第二步:提交要上传的内容;使用git add .提交所有内容到暂存区。

然后再使用git commit -m '提交描述',把文件提交的本地仓库。

第三步:连接远程仓库

由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以连接时需要设置一下: 创建SSH KEY。先看一下你C盘用户目录下有没有.ssh目录,有的话看下里面有没有id_rsa和id_rsa.pub这两个文件,有就跳到下一步,没有就通过下面命令创建

   ssh-keygen -t rsa -C "youremail@example.com"

然后一路回车。(使用一种git版本管理没有问题)所以这里的命令要加点内容

使用GitHub管理 ssh-keygen -t rsa -C "github注册的邮箱" -f id_rsa_github

使用gitlab管理 ssh-keygen -t rsa -C "gitlab注册的邮箱" -f id_rsa_gitlab
使用xxx管理 ssh-keygen -t rsa -C "xxx注册的邮箱" -f id_rsa_xxx

因为使用SSH生成Key,默认在用户~/.ssh目录下生成id_rsa和id_rsa.pub两个文件,在id_rsa_后加xxx可以对应配置。

登录gitlib和github把id_rsa_gitlab.pub和id_rsa_github.pub文件中的内容分别复制粘贴到对应的SSHKeys中,这样公钥就配置好了。

这里以github为例,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密。具体步骤也可看下面:

第四步:配置私钥和修改配置文件

然后设置私钥: git自动将新生成的私钥添加到known_hosts中

ssh-add ~/.ssh/id_rsa_gitlab

ssh-add ~/.ssh/id_rsa_github

如果执行ssh-add时提示”Could not open a connection to your authentication agent”,可执行以下命令:

ssh-agent bash

然后再执行ssh-add命令。

修改配置文件:

在~/.ssh目录下新建一个config文件

$ touch config 添加以下内容(此处应添加你的私钥目录和私钥对应的HostName,即能够正常访问的域名)

#gitlab

Host gitlabay.com

HostName gitlab.tpay.com

PreferredAuthentications publickey

IdentityFile ~/.ssh/id_rsa_gitlab

#github

Host github.com

HostName github.com

PreferredAuthentications publickey

IdentityFile ~/.ssh/id_rsa_github

最后使用 ssh -T git@(gitlab.com/github.com)测试

第五步:建立远程仓库

点右上角new repository新建

第六步:连接远程仓库

在本地projectvue仓库的命令行输入:

git remote add origin git@github.com:chinazhenghuayue/test2.git

关联好之后我们就可以把本地库的所有内容推送到远程仓库(也就是Github)上了,通过:

git push -u origin master

由于新建的远程仓库是空的,所以要加上-u这个参数。然后进去GitHub test2这个仓库刷新下就会有已经上传的文件夹了。如果新建远程仓库不是空的,例如你勾选了 Initialize this repository with a README。这时你要先输入:

git pull --rebase origin master

这是由于你新创建的那个仓库里面的README文件不在本地仓库目录中,这时我们可以通过以上命令先将内容合并,再输入 git push origin master。

在输入git push origin master之后,如果报这个错误: To github.com:chinazhenghuayue/test2.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@github.com:chinazhenghuayue/test2.git'

试试这个命令:git pull origin master --allow-unrelated-histories

然后要重新提交一遍:git add . --> git commit -m '随便说的啥吧' --> git push origin master。

这篇文章是我基于Win10平台上的实践,由于知识有限,可能还是没有总结得很完整,也可能在其他平台上会遇到一些其他的问题,暂时没有去研究,如果读者有遇到什么问题,欢迎留言讨论,共同学习。