关联本地仓库与GitHub远程仓库

写在前面

最近发现自己有些健忘,一些没有系统学习的知识很容易忘记,例如git的一些命令还有github操作。这些原来都是看网上博客学习的,比较零散也没有记录,当时就是即学即用,用完也就忘了。再简单的东西不总结也难以抵挡长时间不用的冲击。所以写一点总结,方便以后长时间不用时还能快速上手。

本文只为了初学者关联本地仓库与远程仓库而服务,不涉及git的具体使用。全文内容大致分成以下几个方面

  1. 从GitHub 创建仓库,再clone到本地进行关联
    • git基本配置,ssh key生成与配置
  2. 从GitHub 创建空仓库,将本地仓库与其关联
  3. 关联之后如何提交到GitHub

正常可以通过1、3两步或者2、3两步来进行本地与远程的关联

大致写完之后发现有些乱,没啥体系。本来想着就私有吧,但是私有已经够多了,为简书加点创作量吧。

1. 从GitHub创建repo并clone到本地

GitHub创建repo很简单就不说了,按步骤来就行。
接下来是在本地clone远程仓库,执行命令({xxx}表示需要换成自己的)

git clone git@github.com:{user_name}:{repo_name}.git
git clone https://github.com/{user_name}/{repo_name}.git

两种clone方式,ssh和https都可以,在这之前要进行一些配置。下面具体介绍如何clone

1.1 git初始化配置:user name和email

这是在下载git后的第一步配置,设置成远程(GitHub)的用户名和邮箱

git config --global user.name "{user_name}"
git config --global user.email "{user_email}"

查看配置信息

git config --list

1.2 生成 SSH Key 并添加到GitHub

ssh key生成在~/.ssh目录下。执行

cd ~/.ssh
ls

查看是否存在 id_rsa 以及 id_rsa.pub文件(rsa是密钥的意思),若不存在则需要生成ssh key。执行

ssh-keygen -t rsa -C "user_email"

之后会有一些操作,一路回车即可,生成上述两个文件,其中id_rsa.pub的内容是我们需要的ssh key,需要在GitHub中添加该ssh key。

在GitHub中添加也很简单,settings -> SSH and GPG keys 去添加即可。添加之后表示在本机上可以通过ssh连接到GitHub的远程仓库。

验证是否成功添加SSH Key,可以执行

ssh -T git@github.com 
// 返回: Hi {user_name}! You've successfully authenticated, but GitHub does not provide shell access.
// 表示成功添加

1.3 clone public/private repo

此时已经可以直接 clone public repo 了,使用 https 和 ssh 都可以。

1.4 一些已知问题

1.4.1 配置好 ssh key 之后连接不到 GitHub

问题形式

$ ssh -T git@github.com
ssh: connect to host github.com port 22: Connection timed out

此为网络问题,时而好时而不好。
还有可能是开启了代理的缘故。可以尝试更换 443 端口,详见Using SSH over the HTTPS port - GitHub Docs

1.4.2 clone 的时候报错

报错内容

ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.

该问题与上面一致,网络问题,参上。

2. 从本地创建repo并提交到Github

这种方法和第一种方法殊途同归。只是一个从本地关联到远程,一个从远程关联到本地。从GitHub上clone会自带GitHub的远程库信息,而从本地新建关联到远程需要remote add源。

以下部分摘自提交本地代码到github - 只会玩辅助 - 博客园 (cnblogs.com)

  1. 需要先把本地代码文件夹初始化成git仓库
  2. 本地代码文件夹叫做工作区,需要先把工作区的代码存到暂存区,通过git add .
  3. 然后将暂存区的代码提交到本地的版本库 通过git commit -m '提交信息'
  4. 最后将本地版本库提交到github仓库

1)本地代码文件夹初始化成git仓库

git init

执行后会生成.git目录

2)本地代码文件夹叫做工作区,需要先把工作区的代码存到暂存区,通过git add .
在对本地项目进行编辑后,需要将工作区的文件添加到暂存区,让git进行记录,这里涉及到git的运行机制

git add . // 点表示当前目录下所有文件

3)然后将暂存区的代码提交到本地的版本库 通过git commit -m '提交信息'
提交的是当前版本,提交之后可以通过git log查看本次提交版本

git commit -m "commit message"

4)最后将本地版本库提交到github仓库
这里首先需要在GitHub上创建一个空项目,注意 GitHub 在 initialize 的提示 Skip this step if you’re importing an existing repository.
然后执行下述命令去关联远程库,可以在.git/config中查看相关信息

git remote add origin git@github.com:{user_name}/{repo_name}.git // origin 是远程库的名字,可以自定义

再把本地版本库提交到远程

git push -u origin master    // origin是远程库的名字,可以自定义;master是分支名,是默认的主分支

3. 已经关联远程仓库

3.1 将本地修改提交到GitHub远程仓库

此时编辑文件,或者新建文件之后,可以执行 git status 查看某些文件会出现红色信息表示尚未add到暂存区,相当于从 2 中的 2)开始,不过省去了4)git remote add 关联远程仓库的步骤。
简而言之就是执行下述命令

git add .
git commit -m "new commit"
git push origin main

3.2 拉取远程仓库内容到本地

git pull origin main

至此已经结束了,可以完成本地和远程单个库的交互。没有说明每个命令背后的逻辑,所以遇到与文中不一样的信息时可能会难以进行下去。
最后附一些其他感觉不错的相关博文以供参考

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

推荐阅读更多精彩内容