Github与Git学习笔记

Github与Git

以前只知道在GitHub上下一些代码,然后在本地进行参考学习,由于最近写代码的过程中遇到了总是要频繁修改版本的情况,才开始决定了解学习一下可用于版本管理的GitHub与Git,以下为学习过程的一点笔记。

为什么要用到Github?

Github是一个面向软件的托管平台,什么时候会用到它?

  • 想要造轮子或者复现论文的时候,先去github上看看别人有没有做过以及别人是怎么做的,毕竟代码公开,在遵循开源协议的前提下,可以copy下来用的。
  • 几个小伙伴合作开发小软件小项目的时候,放到github上来实现合作开发,相当于在云上的代码仓库(公有仓库免费,私有收费),还免费,省去了单独建设仓库服务器的成本,还有自己搭建物理主机服务器的麻烦。

要用Github,我需要会点什么?

需要会Git

  • 那么什么是Git?

    • 是用来实现代码版本历史管理的工具
  • 为什么要会Git 或者说 Git有什么用?

    • 讲个设计师的段子,金主爸爸要你改第一版,第二版,第三版,第n版, 你通宵改了后,他说,还是第一版的好,改回来吧。如果这个时候你没有留存第一版的话,就会很麻烦。代码也是一样,老板要你改第一版,第二版,第n版,最后或许还是要某一版(可能因为新的版本不稳定之类的问题),就需要你留存下来某一版的历史记录,这就需要Git的帮助,即需要Git来做版本控制
    • 几个小伙伴一起开发东西,各自将各自的代码传到服务器上,然后有需要时候下载其他人的代码进行修改,修改后再传上去,这就需要Git记录谁,什么时候,下载了什么东西,改了什么内容,这将有助于整个团队开发的管理
  • 怎么用Git?

      1. 下载安装window下载地址

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ON2koxe6-1590822124389)(Git与Github.assets/1590761161263.png)]

        剩下的我就是几乎一路默认下来。。。

        打开后的界面大概是这样:
        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9mvXKwPe-1590822124391)(Git与Github.assets/1590761659625.png)]

      1. 设置自己的名字以及邮箱:
        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x3S8Bj3w-1590822124392)(Git与Github.assets/1590763923425.png)]

        $ git config --global user.name "Your Name"
        $ git config --global user.email "[email protected]"
        
      1. 使用Git:

        • 建库&提交:
        1. 进入待管理的文件夹:

          [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xUNuDnhm-1590822124394)(Git与Github.assets/1590764080089.png)]
          文件夹内情况为:

          [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JudX5xug-1590822124397)(Git与Github.assets/1590764428031.png)]

        2. git init 初始化一个本地仓库

          [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E3YXuX1K-1590822124398)(Git与Github.assets/1590764130780.png)]

        3. 将文件内的helloWorld.txt先放到仓库缓存区,再正式提交到仓库。

          [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WWfNV4cf-1590822124398)(Git与Github.assets/1590764844764.png)]

          其中git add helloWorld.txt的意思是将文件添加到仓库的缓存区(add可多次),而git commit -m "添加了helloWorld.txt"则是将其正式提交到仓库,而"添加了helloWorld.txt"则是告诉对这次更改的描述(commit一次性全提交了)。

        • 回退版本:

          • git log 查看版本的情况:
            [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cd39D3Es-1590822124399)(Git与Github.assets/1590765234029.png)]
            第一行是commit id,可认为其是版本号。蓝色的HEAD表示是当前版本。
            第二行是作者,包括我的名字以及邮箱。
            第三行是修改时间。

          • 回撤回从前的某一版本:

            git reset --hard HEAD^
            

            HEAD^表示上一版本,HEAD^^表示上两个版本,几个^符号表示往上几个版本,当版本过多的时候,比如回退1000个版本的时候写成HEAD~1000即可。

          • 恢复到新版本:
            首先利用git reflog找到新版本的commit id,然后git reset --hard commitId即可,Id写前几位即可(能找到唯一的版本即可)。

会了Git后,我该怎么使用GitHub?

首先得去GitHub上注册个账号。

添加SSH Key,证明你是你

如果你想要提交一份代码到GitHub上去,那么GitHub需要知道是你而不是张三李四提交的,这就需要明确你是你,而已知Git支持SSH协议,因此可以通过公钥来知道你是你。

ssh-keygen -t rsa -C "[email protected]"创建SSH Key, 双引号内为自己的邮箱地址,一路回车下去,然后可以在主目录中找到.ssh目录,里面有两个文件,如下图所示,其中公钥可以告诉别人,私钥不行:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ti7Xo5W3-1590822124399)(Git与Github.assets/1590810274932.png)]

将公钥的内容复制。

登录我的github,然后依次"Account settings" — “SSH Keys and GPG keys” — “New SSH Key” 填上自定义的title,并在Key文本框内粘贴公钥中的内容即可。
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nQbwk5EY-1590822124400)(Git与Github.assets/1590810526850.png)]

添加后的Key为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k9e8Way2-1590822124401)(Git与Github.assets/1590811007145.png)]

创建仓库

创建仓库,然后自己填一些这个项目的信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-26RXtSCQ-1590822124401)(Git与Github.assets/1590811831817.png)]

将本地仓库和GitHub仓库进行相互的关联

1. 本地仓库 —> GitHub仓库

本地已有的和远程仓库同名的仓库可以进行关联,比如:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wGbeFbE4-1590822124402)(Git与Github.assets/1590820527565.png)]

git remote add origin git@github.com:flow-specter/0529_testGit.git
git push -u origin master

即可将同名的本地仓库内容推送上去。

注意,如果出现以下报错:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rYr5XEa6-1590822124402)(Git与Github.assets/1590821681402.png)]

可通过git remote rm origin删除origin后,再用GitHub建议的命令git remote add origin [email protected]:flow-specter/0529_testGit.git , git push -u origin master即可。

2. GitHub仓库 —> 本地仓库

刚开始开发时建议首先创建远程库,再利用Git clone从远程库克隆。

GitHub上的库会有其地址,可以被用来克隆,比如:

git clone [email protected]:flow-specter/fucking-algorithm.git

参考链接

简书 Git和Github使用教程

简书 git上传代码至github以及错误集锦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章