OS环境下在VScode内使用github基础(二)建立与远程仓库的连接

OS环境下在VScode内使用github基础(一)本地仓库中已经介绍了,如何在本地新建一个仓库。这里将继续介绍一下自己将本地仓库与远程仓库建立连接的方式。

新建的本地仓库与clone下来的本地仓库间还是有着比较大的区别的。由于从远程clone到本地的分支自动建立关联,而本地与远程建立了pull的关系但无法push,强行push会出现upstream问题,建立连接的过程会比较繁琐,在大部分情况下,直接在github内建立仓库然后clone至本地会是更加简便的方法。

上篇文章中,已经完成了本地仓库的建立与commit操作,接下来要实现的就是将本地仓库push至远程仓库。

1. 配置SSH

1.1 生成SSH

上传github有两种方式,使用配对的SSH密钥或者账号密码方式,前者一次设定即可,后者应该也有记忆功能,但在个人使用过程中出不来要求输入密码的界面,有两次出现后输入密码后并不显示,光标在原地不动,根据他人经验贴,实际密码已经输入进去了,只需要回车即可。有兴趣的读者可以自己尝试,若知道为何时而才出现输入密码命令,希望可以分享一下~这里密钥的配置方法也是手册的直接转述。
密钥一般默认存储在~/.ssh目录下,生成密钥前,可以首先检查一下是否已经生成过密钥。使用 cd ~/.ssh 命令,若有密钥将会出现以下内容:

$ cd ~/.ssh
ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub

其中.pub文件为公钥而另一个即对应的私钥。第一次设置本地仓库连接前应当是没有密钥的,需要我们生成一对公钥与私钥。输入ssh-keygen -t rsa -C "邮箱地址" 命令后,就可以看到以下文本了

$ ssh-keygen -t rsa -C "email@email.com" 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
Created directory '/home/schacon/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/schacon/.ssh/id_rsa.
Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

其中后面的几行是分开出现的,只需要我们按几次enter键确认即可。当最后四行出现时,我们的密钥就生成完毕了,然后再使用 cat命令调用出.pub文件即公钥的内容,并复制到github中就完成了SSH的配置。要复制的内容是从第二行开始的所有文本。

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3N...
...NrRFi9wrf+M7Q== schacon@mylaptop.local

1.2 在gihub中配置SSH

复制好公钥后,登陆github帐户,点击头像,依次点击Settings -> 左边栏 SSH and GPG keys -> New SSH key,会出现两个内容框tittle与key,在key中粘贴刚才复制的公钥,tittle可以随便输入,建议设置为私钥所在的设备,如Steve's Macbook Air。

2. 初次上传

cd 项目所在目录 #首先cd至项目所在目录
git init #初始化本地仓库,若已初始化可以省略
git add README.md 
git commit -m "first commit" #add并commit''README.md''文件至本地仓库中
git remote add origin git@github.com:XXXX/XXXX.git #初始化所要上传的远程仓库
git push -u origin master  #将本地仓库push至远程仓库

代码中前四行为本地仓库操作不做赘述。刚开始操作时,只需复制黏贴所有内容即可,若想要更好理解5、6两行的内容,后面是一些解释说明。

首先,第5行''git remote add origin''后的内容是仓库地址,要获取地址在仓库内点击clone -> Use SSH 就可以看到SSH方式上传所用的仓库地址,直接复制即可。初始化远程仓库后,所在的本地仓库在之后都会以此作为对应的远程仓库。以后要是想知道这个仓库对应远程仓库信息,使用git remote -v命令即可。

git remote -v #查看当前对应的远程仓库信息

如果想要更改对应的远程仓库,就需要首先删除当前设置的origin,然后再次添加新的origin。

git remote rm origin #删除设置
git remote -v #再次查看远程信息应当不会显示任何内容
git remote add origin git@github.com:XXXX/XXXX.git #初始化所要上传的远程仓库

关于origin具体所指的是什么,可以参考这篇文章github中origin和upstream的区别

然后,我们再来解释'git push -u origin master'命令。git push十分易于理解,即一个push命令。使用参数-u是因为使用后,下次可以直接使用git push代替git push origin master。master是指定上传master分支。

$ git push
The current branch master has no upstream branch.To push the current branch and set the remote as upstream, use 
git push --set-upstream origin master

若看过上一个文章链接,会对upstream有更多一些的理解。具体对此命令解释可以参考此篇文章git push origin和git push -u origin master区别

*可能遇到的问题:

如果远程仓库并非一个新建的空仓库,直接push,github会操作失败。因为本地和远程的内容不一致,远程有本地所没有的文件,github并不会只把本地仓库中远程仓库没有的文件或后续更新上传。我们首先需要把远程仓库文件pull到本地。使用git pull命令即可。若出现问题可以尝试以下命令:

git pull origin master --allow-unrelated-histories #这个命令会强制把远程库中不在本地的文件全部pull到本地

接下来再使用git push即可,如果成功,打开github,会看到之前在本地但不在远程仓库中的文件已经被添加进了仓库中。

一点备注:

个人在VScode内使用github时,基本都是使用终端操作,只有commit和push可能会使用VScode内的按键而非终端命令。不过,VScode目前觉得唯一的优点在于可以很方便的看到仓库内版本状况,如文件在仓库内但还未追踪,或是更改后但尚未commit。

以上就是目前为止的进度,关于github的使用暂时探索到这个程度。


原本准备4月10号更的文章一直拖到现在才更,是由于之前毕业论文要求定稿了,又有两场考试突然通知,急急忙忙需要复习,今晚八点刚刚完成了考试,安排接下来的计划时,想起欠的这篇文章赶紧写掉。距离毕业只剩下答辩和一门通识课程了,接下里会安心学习编程和CFA,可以返校后也要拿到教材开始复习考研了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355