Github与Git学习笔记
Github与Git
以前只知道在GitHub上下一些代码,然后在本地进行参考学习,由于最近写代码的过程中遇到了总是要频繁修改版本的情况,才开始决定了解学习一下可用于版本管理的GitHub与Git,以下为学习过程的一点笔记。
为什么要用到Github?
Github是一个面向软件的托管平台,什么时候会用到它?
- 想要造*或者复现论文的时候,先去github上看看别人有没有做过以及别人是怎么做的,毕竟代码公开,在遵循开源协议的前提下,可以copy下来用的。
- 几个小伙伴合作开发小软件小项目的时候,放到github上来实现合作开发,相当于在云上的代码仓库(公有仓库免费,私有收费),还免费,省去了单独建设仓库服务器的成本,还有自己搭建物理主机服务器的麻烦。
要用Github,我需要会点什么?
需要会Git。
-
那么什么是Git?
- 是用来实现代码版本历史管理的工具
-
为什么要会Git 或者说 Git有什么用?
- 讲个设计师的段子,金主爸爸要你改第一版,第二版,第三版,第n版, 你通宵改了后,他说,还是第一版的好,改回来吧。如果这个时候你没有留存第一版的话,就会很麻烦。代码也是一样,老板要你改第一版,第二版,第n版,最后或许还是要某一版(可能因为新的版本不稳定之类的问题),就需要你留存下来某一版的历史记录,这就需要Git的帮助,即需要Git来做版本控制。
- 几个小伙伴一起开发东西,各自将各自的代码传到服务器上,然后有需要时候下载其他人的代码进行修改,修改后再传上去,这就需要Git记录谁,什么时候,下载了什么东西,改了什么内容,这将有助于整个团队开发的管理。
-
怎么用Git?
-
-
下载安装:window下载地址
剩下的我就是几乎一路默认下来。。。
打开后的界面大概是这样:
-
-
-
设置自己的名字以及邮箱:
$ git config --global user.name "Your Name" $ git config --global user.email "aaa@qq.com"
- “Your Name”: 名字
- “aaa@qq.com”: 邮箱
-
-
-
使用Git:
- 建库&提交:
-
进入待管理的文件夹:
文件夹内情况为: -
git init
初始化一个本地仓库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E3YXuX1K-1590822124398)(Git与Github.assets/1590764130780.png)] -
将文件内的helloWorld.txt先放到仓库缓存区,再正式提交到仓库。
其中
git add helloWorld.txt
的意思是将文件添加到仓库的缓存区(add可多次),而git commit -m "添加了helloWorld.txt"
则是将其正式提交到仓库,而"添加了helloWorld.txt"则是告诉对这次更改的描述(commit一次性全提交了)。
-
回退版本:
-
git log
查看版本的情况:
第一行是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-****** -t rsa -C "aaa@qq.com"
创建SSH Key, 双引号内为自己的邮箱地址,一路回车下去,然后可以在主目录中找到.ssh目录,里面有两个文件,如下图所示,其中公钥可以告诉别人,私钥不行:
将公钥的内容复制。
登录我的github,然后依次"Account settings" — “SSH Keys and GPG keys” — “New SSH Key” 填上自定义的title,并在Key文本框内粘贴公钥中的内容即可。
添加后的Key为:
创建仓库
创建仓库,然后自己填一些这个项目的信息。
将本地仓库和GitHub仓库进行相互的关联
1. 本地仓库 —> GitHub仓库
本地已有的和远程仓库同名的仓库可以进行关联,比如:
git remote add origin aaa@qq.com.com:flow-specter/0529_testGit.git
git push -u origin master
即可将同名的本地仓库内容推送上去。
注意,如果出现以下报错:
可通过git remote rm origin
删除origin后,再用GitHub建议的命令git remote add origin aaa@qq.com:flow-specter/0529_testGit.git
, git push -u origin master
即可。
2. GitHub仓库 —> 本地仓库
刚开始开发时建议首先创建远程库,再利用Git clone
从远程库克隆。
GitHub上的库会有其地址,可以被用来克隆,比如:
git clone aaa@qq.com:flow-specter/fucking-algorithm.git
参考链接
下一篇: VASP计算笔记_声子谱计算
推荐阅读
-
算法学习笔记 二叉树和图遍历—深搜 DFS 与广搜 BFS
-
OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算
-
HTML5与CSS3基础教程第八版学习笔记16-21章 - 平凡世界平凡人
-
Python数据分析与挖掘实战学习笔记
-
python学习笔记之列表(list)与元组(tuple)详解
-
数据结构与算法学习笔记:栈
-
《深入理解java虚拟机》学习笔记--第三章:垃圾收集器与内存分配策略 jvm
-
《深入理解java虚拟机》学习笔记--第四章:虚拟机性能监控与故障处理工具 虚拟机java
-
《深入理解java虚拟机》学习笔记--第四章:虚拟机性能监控与故障处理工具 虚拟机java
-
《深入理解java虚拟机》学习笔记--第三章:垃圾收集器与内存分配策略 jvm