使用SSH方式实现Git远程连接GitHub

git是目前世界上最先进的分布式版本控制系统,相比于SVN,分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作!当有网络的时候,再把本地提交推送一下就完成了同步,非常方便,故而也得到了广大IT工作者的青睐!

一、git的安装与基本配置

关于git的安装和基本配置,这里不再赘述,在Windows上使用Git,可以从Git官网直接下载https://git-scm.com/downloads,然后按默认选项安装即可。安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功 在git bash里面进行用户名和邮箱设置
git config --global user.name “随便取一个用户名” (回车)
git config --global user.email “输入你自己的邮箱” (回车)
使用SSH方式实现Git远程连接GitHub_第1张图片

二、本地仓库

1.准备工作与仓库的建立

在你想建立仓库的文件夹右击选择Git Bash Here使用SSH方式实现Git远程连接GitHub_第2张图片
效果如下使用SSH方式实现Git远程连接GitHub_第3张图片之后依次
git init
git add .
git commit -m “first commit”
git remote add origin [email protected]:ComputerScienceHIT/Lab2-1153710517.git(这里是你的SSH地址)
git push -u origin master

大部分人会在最后两步出问题,解决方法如下。

这里我重点说使用SSH方式实现Git远程连接GitHub。

一、登录GitHub,新建一个仓库,进入仓库,我们会注意到,GitHub给出的地址不止一个,还可以用https这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。但是使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令。
使用SSH方式实现Git远程连接GitHub_第4张图片
二、复制SSH链接,在git bash输入:git clone SSH链接,显示如下:
使用SSH方式实现Git远程连接GitHub_第5张图片显示没有权限(无公钥)

三、输入:ssh-keygen -t rsa ,连续三次回车(即不做任何输入),结果如下:
使用SSH方式实现Git远程连接GitHub_第6张图片通过结果显示及cat命令查看可知public key存放于id_rsa.pub中

四、输入:cat id_rsa.pub (去指定目录下)复制所有内容
使用SSH方式实现Git远程连接GitHub_第7张图片五、到github右上角账户管理-Setting下面找到左侧“SSH and GPG keys”菜单,接着点击“Add SSH key”,在”title”栏输入一个自己喜欢的标题,“key”栏中粘贴刚刚复制的公钥内容,最后点击“Add key”按钮。(粘贴时选择为纯文本),最后生成的结果
使用SSH方式实现Git远程连接GitHub_第8张图片Emails不能设置成private,即:Keep my email adress private 把前面的那个给勾掉。

输入:ssh -vT [email protected] ,显示如图则成功
使用SSH方式实现Git远程连接GitHub_第9张图片六、然后就可以把本地的仓库master分支push到远程仓库里面去了,如图
在这里插入图片描述有些可能会以前的错误创建,导致的错误,后面再push也是出现这个问题。一个简单的方法输入下面这个指令,移除刚刚的origin,再执行刚刚的命令就可以把本地仓库上传到远程仓库了。
使用SSH方式实现Git远程连接GitHub_第10张图片完成。

之后如果想更新仓库
1、更新代码
你的本地仓库更新了一些东西,在更新后使用

git add .

表示更新全部
2、更新说明
接着输入git commit -m “说明” ,commit只是提交到了缓存区

3、push到远程master分支上
最后git push -u origin master (在github仓库刷新下,就出来了。)

最近发现了几个新错误,

  1. github中git push origin master出错:error: failed to push some refs to
    解决方法
    很明显是:
    本地没有update到最新版本的项目(git上有README.md文件没下载下来)本地直接push所以会出错。
    用git pull --rebase origin master 可以把最新的README.md下载下来,

  2. git pull --rebase origin master 可以会遇到如下错误
    error: Cannot pull with rebase: You have unstaged changes.
    error: Additionally, your index contains uncommitted changes.
    这是因为没用git add 没用更新,这里要注意git add .
    git add -A 保存所有的修改
    git add . 保存新的添加和修改,但是不包括删除
    git add -u 保存修改和删除,但是不包括新建文件
    所有如果有删除修改要用git add -A ,然后git commit -m “修改注释”
    之后就可git push origin master

  3. 怎么下载更新本地
    使用如下命令可以查看远程仓库
    $ git remote -v

    从远程获取最新版本到本地
    使用如下命令可以在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
    $ git fetch origin master:temp

    比较本地仓库与下载的temp分支
    使用如下命令来比较本地代码与刚刚从远程下载下来的代码的区别:
    $ git diff temp

    合并temp分支到本地的master分支
    对比区别之后,如果觉得没有问题,可以使用如下命令进行代码合并:
    $ git merge temp

    删除temp分支
    如果temp分支不想要保留,可以使用如下命令删除该分支:
    $ git branch -d temp
    也可以使用git branch -D temp强制删除该分支。

你可能感兴趣的:(杂谈)