关联本地仓库与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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容