当前位置:   article > 正文

【Git】Git连接GitHub

git连接github

文章篇幅过长,纯粹浏览可能造成人体不适,如果信得过我,建议打开电脑,照着步骤做。

步骤概览:

前言

  1. 下载并安装Git

  2. 申请GitHub账号

  3. 创建本地SSH并复制粘贴到GitHub

  4. 创建远程仓库

  5. 将本地仓库推送到远程仓库

  6. 第二次将本地仓库推送到远程仓库出错了怎么办?

  7. 两个Git危险的命令

总结


前言

小王子里面有一句话:“每个大人都曾是小孩,多少大人还记得呢?”

这就跟学习一样,那些花了很长时间学会某项技能的人,或者他们已经忘记了到底花了多长时间才学会那项技能,等他们学会之后,再给后来人讲述就会冠以“五分钟学会***”,“21天完全掌握***”,“只需要三分钟,真的只需要三分钟,一首歌的时间你就能***”。说真的,我以前是相信这些标题的,毕竟我也想走捷径,因为学习真的太苦了。

可是无数次的实践证明,这些标题都是假的,没错,就连标题里面的标点符号都是假的。

今天我给大家分享一个“五分钟学不会的技能”,具体多长时间能学会看你用的勤不勤了,真的是“无他,孰能生巧尔”。

这项技能就是Git连接GitHub,在一篇文章里把这个技能360度无死角的说一遍,我没有那个能力,但是通过3000+字,让你们了解一下我是怎样用这个技能,这个能力我还是有的。

1.下载并安装Git【自行百度,提醒一点:记得安装时勾选:添加到环境变量】

2.申请GitHub账号【自行百度,如果不感兴趣,这篇文章也没有看的必要】

3.创建本地SSH并复制粘贴到GitHub

首先,打开Windows的一个文件夹,你打开的这个文件夹就是本地仓库,里面需要有你想要推送到远程仓库的文件。比如我想把一个文本文件传到GitHub上面。

 

在本地仓库里面,右键Git Bash Here,输入命令 ssh-keygen -t rsa  (ssh-keygen空格,-t空格rsa) 之后回车两次,根据提示输入小写y,之后再连续回车三次,直到出现一堆圈圈点点。

 

然后,去C盘,找到用户,再找到你自己的用户名,再找到.ssh文件夹,里面有一个id_rsa.pub文件,后缀是.pub就代表是公钥,没有后缀就代表是私钥,私钥是自己留着的,公钥是可以给大家看的。所以我们用的就是带.pub后缀的公钥,右键用记事本打开,按Ctrl+A进行全选,再按Ctrl+C进行复制。

 

 

再然后,打开浏览器,登录自己的GitHub,浏览器右上角自己头像的旁边有一个下拉选项,点击之后选择Setting,继续左侧的SSH and GPG keys,再点击页面右上方的New SSH key,随意输入Title,将刚才复制的公钥粘贴到Key的编辑框里,按Add SSH key进行保存

 

 

 

 

 

 

4.创建远程仓库

再次点击浏览器右上角的头像下拉选项,选择Your repositories(你的仓库),继续点击页面的右上方的New,输入Repository name,比如我这里起个名叫test,之后果断的点击Create repository ,之后你会看到一个空仓库,里面一堆英文。

 

强调一下,下面这个页面其他的任何东西不要点,只需要输入Repository name之后点击Create repository,

 

 

 

 

 

5.第一次将本地仓库推送到远程仓库

首先,我们需要自报家门,告诉Git这个应用程序是谁在用它,分别执行下面两句命令:

       git config --global user.name “GitHub用户名”

       git config --global user.email “注册GitHub用到的邮箱”

       然后,初始化本地仓库

              git init

       再然后,与远程仓库建立连接

              git remote add origin git@github.com:GitHub昵称/新建的仓库名.git

接下来,告诉Git你要往远程推送哪些东西

git add .

git commit -m”这个引号里写推送时候需要的备注,必须写”

最后,执行推送命令

             git push -u origin master    (第一次推送需要加 -u 参数,第二次及以后就不用加了,不过我试了试第一次不加也能成功,但是为了保险起见,建议你加上 -u 参数)

 

执行完成之后,想要看看推送是否成功,我们需要再次点击浏览器右上角头像一旁的下拉选项,选择Your repositories,然后点击刚刚创建的仓库,进去之后你就会发现本地文件已经上传到GitHub了。

 

 

六、第二次将本地仓库推送到远程仓库出错了怎么办?

       比如说,我刚才是把路径为

              Desktop/MyBlog/新建文件夹/

       这个文件夹里的图片推送到一个新建的空的远程仓库了,现在远程仓库已经有一些图片存在了,那么假如我想把我写的一些代码也推送到这个test远程仓库怎么办?当然,前期步骤还是一样:

       首先,找到我的代码文件所在位置,右键Git Bash Here

 

因为Git这个应用程序已经知道是你在用它了(user.name和user.email刚才都配置过了),所以就没必要再执行git config –globa那个命令了,直接上来就是初始化本地仓库,然后与远程仓库建立连接,再告诉Git你想要推送到远程仓库的文件。

 

       上面那些步骤都没问题,关键是最后推送的时候,会出现拒绝推送的错误。

 

 

原因就是,你远程仓库里面有的东西你本地仓库里面没有。比如说我现在远程仓库test里面存放了一个”新建文本文档.txt”,而我本地仓库现在只有第三章的代码(因为为换文件夹了,所以”新建文本文档.txt”不在这个文件夹里),这就难为Git了。

为什么这就难为Git了?因为Git的本质是“版本控制”,所谓版本控制就是在原有的基础上更新迭代,远程仓库原有的是”新建文本文档.txt”,而你现在只有一些代码,Git不是百度云,不能说你想怎么上传就怎么上传。

为了解决这个问题,我们执行下面的命令:

git pull origin master --allow-unrelated-histories

这个命令的作用就是把远程仓库里有的而本地仓库里没有的给下载(pull)到本地,执行的时候Git会调用一个类似Vi的编辑器,让你记录一下为什么要执行pull操作,随意写写之后保存退出。

执行完pull操作后,你会发现你的本地多了一个”新建文本文档.txt”,这个就是远程有的而本地没有的,这时候再次执行推送命令就可以推送成功了。

七、我知道的两个Git危险的命令(建议略过,这么危险的命令越晚知道越好)

1、强制push(加个-f参数)

              git push -f origin master

              这个命令会强制把本地文件推送到远端,远端未在本地的文件将会丢失。

              除非远端仓库是空仓库或者一些无关紧要的文件,否则不要用这个命令。

示例:

本地仓库原先有三张图片,我将其推送到远程仓库,之后我在远程仓库手动创建了一个文件a.txt,然后我又在本地仓库创建了一个“新建文本文档.txt”。

 

 

 

这个时候我想要把本地的“新建文本文档.txt”推送到远程,我有两种选择,一种是工作的时候用的方式,就是上面讲到的先pull一下,把远程的东西给拉下来,再push本地的东西。还有一种选择就是强行推送,即命令:git push -f origin master

执行完命令后,刷新远程仓库的界面

发现本地的“新建文本文档.txt”是推送上去了,可是远程里面的a.txt没了,这就是强制推送,强制让远程仓库和本地仓库统一。

如果说是自己一个人玩玩,这没什么的,假如是团队协作,不光你一个人用Git,别人也在往这个仓库里推送人家自己的代码,你一下子把人家辛辛苦苦敲出来的代码都给搞没了,不说翻脸,也不说动刀子,把枪的都有。真的,美国有个新闻就是说一个程序猿不满另一个程序猿xjb用Git,经常强制推送,最后一枪把那个人给崩了。

2、强制clean (加 -d -fx 参数)

              git clean -d -fx

                     这个命令会把本地未曾和git有过交集的文件删除,慎用!!!

示例:

请看我先买这两张图片的文件内容

 

 

 

 

有没有发现同样是在路径/第三章底下,可是上面的那张还有好多个文件夹,下面的那张就只有四个文件夹,这就是我只对上传文件 、国际化应用 和jsp_struts_javabean_jdbc这三个项目执行了git add之后就执行了一下git clean -d -fx这个命令,而我之前又不知到这个命令的作用,所以我的那些项目就都没了,真的没了,回收站里都没有。

如果你没理解这个命令的作用,我再给你举个例子,比如说我现在在本地仓库新建三个文件夹,不对这三个文件夹执行git add 命令,直接执行git clean -d -fx,执行前后对比图如下:

 

 

看出来了吧,只要是和Git不沾边的文件,这个命令都会将其删除,而且是删的一干二净,哪里也找不到,可能找回这些被删除文件的唯一办法就是赶紧切断电源,拔下磁盘,然后找专业人员进行数据恢复。否则,误删了项目代码,你的数月努力都将付之东流。

 

总结

Git第一次连接GitHub用到的命令

       生成SSH

              ssh-keygen -t rsa

       自报家门

              git config --global user.name “GitHub用户名”

       git config --global user.email “GitHub注册时的邮箱”

初始化本地仓库

       git init

       与远程仓库建立连接

       git remote add origin git@github.com:GitHub用户名/新建的仓库名.git

将要推送的文件加入到本地仓库

       git add .

              点代表此目录下的所有的文件,也可以使用git add 具体文件名称  

              这样只会添加一个文件到本地仓库

       git commit -m”推送到远程的备注信息”

             -m和备注信息之间不需要空格

              备注信息是必须要有的

       git push -u origin master

 

Git第二次连接GitHub的同一个仓库需要用到的命令

初始化本地仓库

       git init

       与远程仓库建立连接

       git remote add origin git@github.com:GitHub用户名/新建的仓库名.git

将要推送的文件加入到本地仓库

       git add .

       git commit -m”推送到远程的备注信息”  

将远程仓库的文件拉取到本地仓库

       git pull origin master --allow-unrelated-histories

       git push origin master

 

还有三点再强调一下

  1. 在网页上创建远程仓库的时候,只需要输入仓库名称,其他的都不用勾选,之后直接点击Create。假如你勾选了自动生成READEME.md和LICENSE文件,那样就会出现与Git第二次连接GitHub的同一个仓库时的问题,就是远端和本地文件不一致。没有必要自己给自己找麻烦。
  2. 这只是我所了解的Git的最初级的用法,而且是一个人玩玩的用法,Git还有很多强大的功能,比如说分支管理,只有学会了分支管理,才能进行团队协作(我目前还不会分支管理)。
  3. Git危险的命令请谨慎使用!!!

 

最后推荐一个学习Git的好地方:

【廖雪峰的官方网站】:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

.


看完如果觉得不错,留个赞再走。


.

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/441167
推荐阅读
相关标签
  

闽ICP备14008679号