Git入门
Git概况
点了不后悔
Git的背景故事我就放下面了。
Git是一个流行、免费开源的版本控制
软件。 什么是版本控制?我们可以从玩游戏的角度来理解版本控制
。 如果你曾经游玩过闯关类的单机游戏,那么你应该会经常接触到存档
系统。
某一天,平静的村庄闯进了大boss恶魔掳走了小红。为了救回你的青梅竹马小红,打败boss并摧毁它们的邪恶计划,你必须手持利剑分别通过
- 丛林关;
- 湖泊关;
- 沼泽关;
- 火山关;
等关卡。在你闯关的途中,你会经常切换出游戏菜单进行
存档
。这样,一旦你由于打不过怪物死掉了,你可以选择任意的存档
进行重来。有时,boss实在太难打了,你不得不把你的存档
交给你哥哥或者你操作熟练的好基友。在存档
的帮助下,你最终成为了拯救世界的英雄。
代码开发和打游戏是很相似的。不同的是,平静的村庄变成了你所在的开发团队,大Boss被感化成了老板了,你的目的现在是完成良好的代码。 而版本控制
,就是你开发中的存档
系统。
假设你的项目是一个打造屠龙宝刀的程序。 那么,你的开发关卡可以分为:
- 材料收集功能;
- 熔铸功能;
- 镶嵌功能;
- 强化功能;
- 挥舞屠龙刀功能;
如果没有版本控制
,你的每次失误都可能造成从头再来。
而且,团队的项目往往比个人的项目要复杂的多。打造屠龙宝刀的任务在团队环境中,可能是打造四大神器。 具体是:
你负责战士
神器 -- 屠龙宝刀
;
同事A负责法师
神器 -- 麻痹戒指
;
同事B负责坦克
神器 -- 盘古盾
;
同事C负责射手
神器 -- 后羿弓
;
相当于每个人都有各自的职业(分支)
。项目的完成,最终是每个不同的职业(分支)
存档的完成。
这就是版本控制
在开发中的作用。而现在,在众多的版本控制软件中,Git
是最主流的。
安装Git
请尝试自己动手安装。若
powershell
终端输入下方命令后返回版本号则代表安装成功。powershell> git -v
> git -v
Git的使用大师
❌ 不同于先前推荐的工具,我们推荐入手
Git
的方式不再是官方文档(Git)。
第一步
快速成为Git使用大师
,请点击Learn Git Branch--社区开源的Git可视化学习项目yyds(永远的神)。
入门者请一定独立完成整个闯关流程。如果你觉得十分吃力,可以稍微看一眼Git分支学习陪玩。
如果你独立完成了上述挑战,你对Git
的认知已经超越市场上绝大部分的程序员了。接着,第二步--练一下
练一下
- 安装Git后,如何使用Git管理一个代码项目?
> code [$你自己的项目根目录] #这里使用vscode的终端界面进行操作
> code [$你自己的项目根目录] #这里使用vscode的终端界面进行操作
> git init #执行此命令后,git会在该目录安营扎寨,标志管理初始化完成
> git init #执行此命令后,git会在该目录安营扎寨,标志管理初始化完成
# 设置git用户的信息 -- (你自己的信息,--local可省略)
> git config --local user.name [$你的名字]
> git config --local user.email [$你的邮箱]
# 或
# 全局设置git用户信息(设置全局后,任何没有单独设置git信息的项目都会使用全局信息)
> git config --global user.name [$你的名字]
> git config --global user.email [$你的邮箱]
# 配置git的网络代理(为了更流畅地使用,务必自备代理)
> git config --global http.https://github.com.proxy socks5://127.0.0.1:[$你的代理端口]
# (可选一)连接空的git远程仓库
> git remote add origin [$远程仓库的网络地址] # 连接远程仓库
> git remote -v # 查看远程仓库是否连接成功
# (可选二)直接克隆已有的git远程仓库的代码到本地
> git clone [$远程仓库的网络地址]
# 或(可选二)只克隆已有仓库指定分支的代码到本地
> git clone -b [$分支名] [$远程仓库的网络地址]
> git clone -b [$分支名] [$远程仓库的网络地址] [$指定本地目录] # 多一个本地目录的指定,作用自己尝试
# 设置git用户的信息 -- (你自己的信息,--local可省略)
> git config --local user.name [$你的名字]
> git config --local user.email [$你的邮箱]
# 或
# 全局设置git用户信息(设置全局后,任何没有单独设置git信息的项目都会使用全局信息)
> git config --global user.name [$你的名字]
> git config --global user.email [$你的邮箱]
# 配置git的网络代理(为了更流畅地使用,务必自备代理)
> git config --global http.https://github.com.proxy socks5://127.0.0.1:[$你的代理端口]
# (可选一)连接空的git远程仓库
> git remote add origin [$远程仓库的网络地址] # 连接远程仓库
> git remote -v # 查看远程仓库是否连接成功
# (可选二)直接克隆已有的git远程仓库的代码到本地
> git clone [$远程仓库的网络地址]
# 或(可选二)只克隆已有仓库指定分支的代码到本地
> git clone -b [$分支名] [$远程仓库的网络地址]
> git clone -b [$分支名] [$远程仓库的网络地址] [$指定本地目录] # 多一个本地目录的指定,作用自己尝试
# 流行git远程库平台可选 Github,Gitlab,Gitee 这里以Github为例
# 流行git远程库平台可选 Github,Gitlab,Gitee 这里以Github为例
- 如何使用Git的远程仓库?
一、寻找支持创建Git仓库的平台。
这些平台有:Github, Gitlab, Gitee。其它的我也不知道了。
我们选择大名鼎鼎的--Github
二、在Github中创建一个库。
大致步骤
- 确保注册了
Github
的账号(作为一名开发者,Github是你最值得信赖的社区之一,请牢记你的账号就像qq或微信一样) - 找到
Github
官网中与创建代码库相关的功能 -- 当前为create new repository
- 参照功能页提示创建你的第一个Git社区
远程代码仓库
。
以上步骤,也可以参照b站视频操作流程Git开发模拟 - 工具篇;
三、本地远程交互
几乎全部交互功能,在第一步的游戏里已经被覆盖了。如果你对操作仍然有疑惑,建议你参照上述视频。
更好地进行仓库交互
当你尝试将代码上传至远程时,为了确认你的身份,需要你频繁地进行身份验证。
如果你疲于重复地输入账户密码,请使用ssh
密钥(参见GitHub文档——通过 SSH 连接到 GitHub)将你的电脑与git任意平台进行绑定。在绑定之后,ssh
作为你的钥匙,访问远程仓库就非常便捷啦。
当然,上述视频中也实现了流程示例。
> ssh-keygen -t rsa -b 4096 -C "[$你注册的邮箱]"
> ssh-keygen -t rsa -b 4096 -C "[$你注册的邮箱]"
# 该命令进入密钥存放路径, ~是个路径别名,它指的是你当前Window系统用户的根目录
> cd ~/.ssh
# 查看当前目录下的文件,公钥的内容存放在文件id_rsa.pub中
> ls
# 该命令获取id_rsa.pub的文本信息
> cat id_rsa.pub
# 复制公钥信息,在Github官网的个人设置中,找到SSH相关页面绑定window用户(见视频)
# 该命令进入密钥存放路径, ~是个路径别名,它指的是你当前Window系统用户的根目录
> cd ~/.ssh
# 查看当前目录下的文件,公钥的内容存放在文件id_rsa.pub中
> ls
# 该命令获取id_rsa.pub的文本信息
> cat id_rsa.pub
# 复制公钥信息,在Github官网的个人设置中,找到SSH相关页面绑定window用户(见视频)
Git趣闻
Git
工具的诞生离不开它的发起人Linus
(大名鼎鼎的Linux系统之父)。在Git诞生以前,有一个非常知名的版本管理工具叫BitKeeper
, Linux系统的开发使用的也是它。
但由于Bitkeeper
是一款收费的商业服务软件,Linux这款著名的开源项目在开发时,处处受限。 于是,Linus便牵头开发了自己的版本管理工具。
感谢Bitkeeper
。