Git基础教程

在这里插入图片描述

简介

Git作为世界上最先进的分布式版本控制系统,被广泛应用于开发领域,其配合Github进行软件开发成为了最主流的团队开发方式。本文主要介绍如何本地使用Git进行版本控制以及基本的远程仓库推送。

安装

访问官方网站,选择合适的版本下载,对于Windows这里选择64位安装器版本。下载完成后,运行得到的exe文件即可开始安装。

在这里插入图片描述

在安装选项中常见的协议等选项正常选即可,这里重点提到几个选项。下图我勾选了文件查看器工具Git Bash Here而没有勾选Git GUI Here,前者是命令行形式的,后者是图形界面。一般这个GUI用不到(即使使用图形界面,Pycharm等IDE集成的版本控制界面也比这个原生的实用很多)。下面勾选的Git LFS用于大文件上传等操作。

在这里插入图片描述

后面的安装选项主要是编辑器(默认vim,可以自行修改)之类的,一般默认下一步即可安装完成。安装后,在文件管理器中右击会出现下图的bash选项,点击后就会在当前位置打开这个交互式shell,输入git --version验证是否安装成功,成功后显示如下。

在这里插入图片描述

在这里插入图片描述

版本控制机制

要想理解Git的版本管理机制,首先要理解Git有3个区域。

  1. Working Directory工作区
  2. Staging Index 暂存区
  3. Git Repository 版本库

工作区指的是用户进行文件编辑的区域,这个区域是Git无法管理的,也就是无法进行文件变动跟踪的。暂存区是一个暂时的文件版本区域,通过add命令将某个或者一批文件提交到暂存区,这些文件就被跟踪了,当一个版本的项目编辑完成,通过commit命令来把此前提交到暂存区的文件提交到版本库,成为一个代码版本。版本库记录每一次提交的代码版本,并且留有日志,可以进行版本回退。

Git操作教程

初始化仓库

要想一个项目被Git管理,需要对该项目的根目录进行Git初始化,没有初始化的仓库输入Git命令会报错fatal: not a git repository (or any of the parent directories): .git ,初始化仓库很简单,只需要git init命令进行初始化即可,该命令会在该项目的根目录下创建一个.git/隐藏文件,该文件包含Git所有的追踪和版本信息,Git进行版本管理的依据就是这个。

下图表示对一个文件夹进行Git初始化后,通过git status命令查看仓库状态,显示Untracked files然后列出了一堆红名文件,这表示这些文件在工作区,无法被追踪。

在这里插入图片描述

本地仓库管理

首先,Git需要知道用户是谁才能进行后面的版本提交,下面三个命令用于本地用户的配置,注意,如果后续使用远程仓库(基本上肯定会使用到),下面配置的用户名和邮箱需要与Github账户信息一致。

git config --list
git config --global user.name "github用户名"
git config --global user.email "github绑定的邮箱"

git add filename命令用于将单个文件提交到暂存区,git add .命令用于将所有文件提交到暂存区,我个人比较喜欢直接使用后面的命令。下图通过该命令将所有文件提交到暂存区,此时查看仓库状态,这些文件显示为绿色,表示正在被追踪着(被追踪表示,两次commit提交的版本之间可以进行版本控制)。

在这里插入图片描述

git commit -m "描述"命令表示将暂存区文件改动提交为一个新的版本,此时通过git log可以看到版本提交日志中我提交了一个版本。

在这里插入图片描述

远程仓库推送

很多时候,代码保存在本地既不安全也不利于共同开发,所以推送到远程是必要的,常用的远程代码存储库有Github(世界上最大的开源仓库)、码云(国内很好用)。本文只讲解Github的推送,其余代码托管平台类似。

要想实现远程仓库推送,必须要让远程平台知道推送者是否是仓库允许推送的成员(仓库创建者和协作者),所以必须要能和Github进行验证,而上一节的用户配置值配置了用户名和邮箱,没有输入密码,任何人都可以盗用,Github是通过一对密钥来进行用户确认的。

首先,通过命令ssh-keygen -t rsa -C "youremail@example.com"Git bash中产生密钥,该邮箱需要是Git本地用户配置的邮箱和Github绑定的邮箱。该命令会有一系列选项,都直接回车默认即可。

在这里插入图片描述

之后,会在用户的家目录下生成.ssh/id_rsa.ssh/id_rsa.pub两个配对的密钥,将后者的文本内容拷贝到Github的密钥设置中,操作流程如下图。之后,创建一个title随意,内容为刚刚公钥文件的内容的新的key。

在这里插入图片描述

此时,就可以对该Github账户下的仓库进行推送管理了,我下面创建了一个叫做hello的共有仓库,通过链接即可进行推送。具体命令如下,地址表示远程仓库的访问地址,就是下图我选中的部分,有两种形式分别为httpsssh,由于之前配置的密钥缘故,这里需要使用ssh链接,使用https推送会弹出github登录窗口,比较麻烦。后面的分支,表示自己当前的工作分支,默认都是master,后面的多人协作的文章会具体谈到这些。

git push 地址 分支名

在这里插入图片描述

下图为具体的推送及成功的返回结果。

在这里插入图片描述

当然,这里有个很明显的问题,每次都输入远程仓库的地址太麻烦了,一般一个本地仓库只对应一个远程仓库或几个远程仓库,因此可以通过设置别名来快速访问远程仓库。

其命名为git remote add origin git@github.com:luanshiyinyang/hello.git,其中origin就是别名名称,也可以设置多个。这样,git push origin master就可以直接推送远程仓库了。

补充说明

本文介绍了最基本的Git的常用命令,关于团队协作的一些相关操作,可以参考我另一篇文章。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐