git:远程仓库(GitHub、GitLab)+涉及到的命令
涉及到的命令
git remote (定义远程仓库别名)
$git remote 不带参数,列出已经存在的远程分支(只有别名)
$git remote -v 列出详细信息,在每一个名字后面列出其远程url
添加远程版本库 $git remote add [shortname] [url] 其中shortname:为url映射到本地库的别名。 例: 提交到 Github $ git remote add origin git@github.com:tianqixin/runoob-git-test.git $ git push -u origin master 删除远程仓库 $git remote rm name(别名) 修改仓库名 $git remote rename old_name new_name
git push (将本地项目推送到远程)
git push 命令作用:用于从将本地的分支版本上传到远程并合并。
$git push 参数 <远程主机名> <本地分支名>:<远程分支名>
如果本地分支名与远程分支名相同,则可以省略冒号:$git push <远程主机名> <本地分支名>
其中:远程主机名就是url的别名。
-u:第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
--force:强制推送,即使版本有差异。
--delete:删除主机分支。
实例:
$git push -u origin master
$git push --force origin master
$git push origin --delete master
git clone (从远程拉取项目到本地)
如 $git remote add gitlab_test git@192.168.24.135:MuYu/test.git
$git clone gitlab_test
$git clone git@192.168.24.135:MuYu/test.git
$git clone https://gitee.com/zhong-jingshan/web-design-and-production.git
本地git和GitHub上传公钥
一:使用远程仓库前的准备工作
使用github远程仓库前,需要注册一个账号。
由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要一点设置:
第一步:创建SSH Key
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果有的话,直接跳过此如下命令,如果没有的话,打开命令行,输入如下命令:
sh-keygen -t rsa –C “youremail@example.com”
ssh-keygen -t rsa –C “youremail@example.com”, 由于我本地此前运行过一次,所以本地有,如下所示:
第一个是私钥,自己保留不能泄露。
第二个是公钥id_rsa.pub,可以分享给别人,让自己和别人通讯。
第二步:github添加ssh公钥
登录github,打开” settings”中的SSH Keys页面,然后点击“ SSH and GPG Keys”,选择"NEW SSH keys"填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容,然后点击"Add SSH key"。
如图,添加结果即为添加好的key。
第三步:添加远程库
现在的情景是:我们已经在本地创建了一个Git仓库后,又想在github创建一个Git仓库,并且希望这两个仓库进行远程同步,这样github的仓库可以作为备份,又可以其他人通过该仓库来协作。
首先,登录github上,然后在右上角找到“new repository”创建一个新的仓库。如下:
如图,目前仓库还是空的
二:将本地仓库和远程仓库关联,并将本地仓库推送到远程仓库上
目前,在GitHub上的这个WHoutest仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据github的提示,在本地的test仓库下运行命令
$git remote add origin https://github.com/gaokai-github/WHoutest.git (其中origin是远程链接在本地仓库的"别名")
然后把本地的仓库分支,推送到远程仓库上。
$cd /d/Git/test/
$git push -u origin master (把本地分支master推送到远程仓库origin上)
点击蓝色条中的按钮后,会再跳出一个新的界面
点击绿色条按钮,然后会提示添加成功,之后命令会自动执行成功,如图:
,此时查看github上WHoutest仓库
由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。推送成功后,可以立刻在github页面中看到远程库的内容已经和本地一模一样了。
从现在起,只要本地作了提交,就可以通过如下命令:$git push origin master,即可。
现在就把本地master分支的最新修改推送到github上了,现在你就拥有了真正的分布式版本库了。
三:从远程库克隆
上面我们了解了先有本地库,后有远程库时候,如何关联远程库。
现在我们想,假如远程库有新的内容了,我想克隆到本地来 如何克隆呢?
首先,登录github,创建一个新的仓库,名字叫WHoutest2如下:
git和gitlab实现免密上传和克隆
一、windows上创建密钥
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果有的话,直接跳过此如下命令,如果没有的话,打开命令行,输入如下命令:
sh-keygen -t rsa –C “youremail@example.com”
ssh-keygen -t rsa –C “youremail@example.com”, 由于我本地此前运行过一次,所以本地有,如下所示:
第一个是私钥,自己保留不能泄露。
第二个是公钥id_rsa.pub,可以分享给别人,让自己和别人通讯。
二、在GitLab上添加该公钥,并命名。
其他用户也可以添加密钥。
添加成功后,就可以在本地测试克隆、拉取项目命令了。