一个有点辛苦的目录:
阅读前提
👋大家好,我已经试图做到从我开始的流程开始介绍,然后一步步的操作讲解,但是由于在了解GIt操作时遇到了很多问题,因此我在解决操作这些问题的时候,促使我的整理流程不够十分顺利(只能说是这个饭没有盛满了😢),但是我还是希望你能从这篇中收获的你想要的东西
摘要:什么是Github?
当我们想要使用一个工具的时候我们还需要使用这个工具能做些什么,因此当我Google搜索了相关信息后得到了一个最好的解释⬇️
相关概念
只有在了解好所有基本的一个概念才能更好的掌握起运行原理,因此本文将根据重点来树立相关的概念知识,在我们后续所要运行的Git/GitHub/Vscode工具中。
Git
参考链接03中具有完整的解释,或者直接点击这里进入
分布式版本控制系统(该部分在我前几章博客中有提及到),Git的工作流程是使用者先从仓库(Repository)中下载到工作目录,修改完后再提交到仓库中。个人觉得有点类似于取回来在本地(pull)然后修改了在放回去(checkout)
工作流程
- 当开发者要建立一个开发项目时,要为这个项目建立一个目录,以及使用git init指令建立一个这个项目的储存库(Repository )。这个目录可称为工作目录(Working Directory),开发项目所有的档案都储存在这个目录下,而执行与项目相关的Git指令,也都是在工作目录下执行。
- Git还会在.git目录下建立一个名称为index的索引档案,作为记录专案所有档案的处理状态,例如是储存在本机储存库中的已提交(committed)档案,或是已变更但尚未提交到本机储存库的已修改(modified)档案,或也有一种状态是在已修改档案中标记出要作为提交到下一版本用的已暂存(staged)档案。这个索引档是用来管理档案修改以及是否要提交到储存库的记录。
分支Brach、Merge
- 一般会将稳定的版本作为主干,其他变动或则是正在开发的版本则作为分支,当开发状态完成后在添加进主支里来保证整体代码的完整不易破坏。
克隆Clone和Fork
复制(Clone)指令是把在远端的仓库里的所有內容复制到本地,建立起本地的仓库和工作目录,而(Fork)則是把別人项目的远程仓库里的內容复制一份到自己的远程仓库里。因此在我们fork完GitHub里他人项目后我们无法直接使用,因为项目被放置在我们自己的远程仓库里,如想要运行修改项目代码,可以做的一个是直接下载download,另一个是可以直接使用git里的clone到我们的本地上(该部分使用vs code十分方便,后续会进行提及如何实现)
资料同步指令Push、Pull、Pull Request
-(Push)指令,可以把自己目前本机本地的仓库内容上传到远程仓库(我愿类比为网盘的概念)
- (Pull)指令則把远程仓库(网盘)的下载到我们的本地,并将远程分支合并到本地的分支。注意Pull並不像Clone指令会下載完整项目各版本內容。
- 开发者使用Pull获得其他人开放权限的网盘程序,也可以将自己修改的代码程序push到别人的网盘里。这两个操作可以实现开发共享代码
- 而pull Request是主动的要求第三方开发者来进入自己开发的程序,将本地仓库上的代码程序放在对方的仓库中,。例如A成員可通过Pull Request要求B成員,將A成員修改後的程序合并入B成員的开发项目中。
GitHub
其使用了Git的核心来完成,是一个线上协作平台,使用议题(Issue)、新开分支(Branch)、维基(Wiki)、拉取要求(Pull Request)等功能,开发者能更有效率的进行版本控制,并且在线上合作、讨论专案及透过GitHub分享程式码。
点击该链接有具体的案例流程,该文章不做重复阐述,仅提出部分注意点
- (这里有点类似于kaggle上保存文件后会产生多个版本,而不是运行完自动保存关闭)
- 没提交一次会产生一次版本,多次提交commit后才一次发布Push到我们的Github云端仓库里,而在我们提及commit时会要求输入相关信息来说明版本做了哪些变动,以此来记录变更。
使用Git (结合VScode快捷实现)
我们已经大致上了解了什么是Git以及GitHub的一个基本使用概要。那我们具体应该如何使用我们的网盘
呢?
下面我们来进入实操并且我们帮助你解决两个重要的问题:
- 如何上传我们的项目(代码)?
- 如何下载别人的项目(代码)并在本地运行修改?
1.安装
注意此文章是Mac限定版,参考here
使用
step:
- Google搜索关键词git mac download
- 根据官网页面完成brew安装
- 使用brew 安装git
- 在终端输入查看版本来确认是否安装成功: git --version
2.创建ssh key、配置git
1、设置username和email(github每次commit都会记录他们)
git config --global user.name "your_name"
git config --global user.email "xxxxxx@qq.com"
2、通过终端命令创建ssh key
ssh-keygen -t rsa -C "xxxx@qq.com"
3.完成上述操作后会要求你输入你设定的密码,并且储存在相关文件中
4.登入你的GitHub账户,添加ssh key,点击Settings,点击New SSH key, 添加key。
- 添加的KEY使用在终端中运行下面这行代码获得⬇️
-注意我已经进入到我存放key目录下了)
(base) h@HdeMacBook-Air-2 .ssh % cat id_rsa.pub
- 接着使用下面这行代码来进行配置⬇️
(base) h@HdeMacBook-Air-2 .ssh % ssh -T git@github.com
P1:如何上传我们的项目(代码)?
事实上,我花费了一些时间来查看相关网络资料来试图系统性的来了解整体的步骤,但是均失败且不太易解决,因此选择了Youtube上这个方法暂时代替我想实现该功能的需求,点击here
可以查看该视频,十分详细,如后续有更好的学习再进行补充
-
打开我们的vs code文件夹,注意这个文件下就是你想要上传的项目文件夹⬇️
-
请确保你的VScode已经登入到你的GitHub账户里
-
点击这个图标,会有两个选择,我们选择第二个
-
事实上,我发现有时候不是一定会出现这个选择界面,因此我们可以使用👇这个方法来实现
- 点击完进行选择,根据你的需求来选,下图只是其中一个选择页面
🎉 此时就完成了我们所有的操作,你可以去你的GitHub账户下仓库里找找看有没有! 🎉
如何下载别人的项目(代码)并在本地运行修改?
- 首先我们先fork别人的项目到自己的仓库里
- 接着你会在自己的账户仓库里找到他,这很好。请复制这个信息
- 请先在本地创建文件夹来放置你后面clone下来的文件,然后我们需要在终端里运行这个命令,红色框里是你复制的内容
git clone https://github.com/Graceoooffice/Face_recognition.git
- 接着就可以使用VScode的打开文件夹来对其进行修改
🎉 此时你已经完成了所有的操作 🎉
补充知识点
可能会涉及到的其他一些技能来帮助你更快的实现
mac 终端一些简单操作指令
- cd… 返回上一级目录
- cd myfolder 进入myfolder目录
- mkdir test 新建目录
- rm -rf test 删除目录(适用于空的目录)
- pwd 显示当前目前
vs code的简单操作指令:如何打开markdown(右键文件-打开预览)
参考资料
再次感谢网友们发出的学习攻略,个人根据资料和自身情况完成具体的一些实操过程
01MAC上Git安装与GitHub基本使用
02在 vscode 中使用 Git :拉取、提交、克隆
03 Git里常见的名词解释,十分具体但是繁体字
04同步你的Fork仓库