一、Git简介

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

Git的功能特性
  • 从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
  • 在自己的机器上根据不同的开发目的,创建分支,修改代码。
  • 在单机上在自己创建的分支上提交代码。
  • 在单机上合并分支。
  • 把服务器上最新的代码fetch下来,然后跟自己的主分支合并。
  • 生成补丁,把补丁发送给主开发者。
  • 开发者之间可以通过pull命令解决冲突,解决完冲突之后再向主开发者提交补丁。

二、Git的安装

可以在相关的官网:https://git-scm.com/进行下载在这里插入图片描述
当官网的速度较慢使用淘宝镜像:http://npm.taobao.org/mirrors/git-for-windows进行相关下载。

三、Git的相关配置

Git跟踪了谁修改了项目,哪怕参与项目开发的只是一个人。为此,Git需要知道你的用户名和电子邮件,你必须提供用户名和相应的电子邮件地址:

git config --global user.name "UserName"
git config --global user.email "UserEmail"

查看Git的相关配置列表

git config --list

查看系统配置,除去自定义配置

git config --system --list

查看用户自定义的配置

git config --global --list

四、Git基本原理

Git管理过程一共处于4个阶段,该4个阶段分别为:工作目录,暂存区,本地仓库,远程仓库。

从时间先后来讲,工作目录的内容是你当前看到的,也是最新的。暂存区标记了你当前工作目录中,哪些内容是被git管理的。本地仓库保存了对象被提交过的各个版本,比起工作目录和暂存区的内容,它要更旧一些。远程仓库是本地仓库的异地备份,远程仓库的内容可能被分布在多个地点的处于协作关系的本地仓库修改,因此它可能与本地仓库同步,也可能不同步,但是它的内容是最旧的。任何对象都是在工作目录中诞生和被修改的,任何修改都是从进入暂存区才开始被版本控制,只有把修改提交到本地仓库,该修改才能在仓库中留下痕迹,而要与协作者分享本地的修改,可以把它们push到远程仓库中共享。相反的,我们可以从远程历史仓库中获取本地仓库的最后一个版本,clone到本地,从本地检出对象的各个版本到暂存区或工作目录中,从而实现任何对象或仓库的任意阶段状态的”回滚“。

四、Git项目的搭建

1、在本地新建Git工程

进入到相关的目录,创建相关的工程文件,然后进入到该工程文件中,在该目录下新建一个Git代码库。

mkdir myProject
cd myProject
git init

相关执行截图如下所示:
在这里插入图片描述
执行完以上的命令后,在其相关的目录下会多出现一个.git目录,关于版本的所有信息都在这个目录下。

2、克隆远程仓库到本地

(1)使用HTTPS URL进行克隆

git clone [url]

其相关具体的url如下所示:
在这里插入图片描述

(2)使用SSH URL进行克隆

当创建Git时没有.ssh文件,可以在相关的命令窗口中输入以下命令,然后一路按回车即可。

ssh-keygen -t rsa -C "所创建的用户邮箱"

相关运行截图如下所示:
在这里插入图片描述
进入到.ssh文件夹中,查看生成的id_rsa.pub文件,然后选中本机生成的公钥。
在这里插入图片描述
进入到github上添加以上所生成的公钥
在这里插入图片描述
此时在自己的项目中就会生成ssh
在这里插入图片描述
然后使用以下命令通过SSH进行克隆

git clone [ssh]

相关截图如下所示:

五、Git文件操作

查看指定文件状态

git status [filename]

查看所有文件状态

git status

将指定文件添加到暂存区

git add [filename]

将所有文件提交到暂存区

git add .

提交暂存区的内容到本地仓库,并添加说明-m 提交信息

git commit -m "message"

将文件提交到远程仓库

git push

将文件移出暂存区

git restore --staged [filename]

六、Git分支命令

列出所有本地分支

git branch

列出所有远程分支

git branch -r

新建一个分支,但是依然停留在当前分支

git branch [branchname]

切换分支

git checkout [branch]

新建一个分支,并切换到该分支

git checkout -b [branch]

合并指定分支到当前分支

git merge [branch]

删除分支

git branch -d [branchname]

删除远程分支

git push origin --delete [branchname]
git branch -dr [remote/branch]

七、解决Git冲突

如果不是基于github远程库的最新版本进行修改,则无法进行推送,所以必须先进行拉取。产生错误后对冲突的代码块进行修改,然后才提交到远程仓库。

如果同一文件在合并时都被修改了,则会引起冲突,解决方法是修改冲突文件后重新提交。

master主分支应该非常稳定,其用于发布新的版本,一般情况下不允许在上面工作,工作一般在新建的分支上进行,当要进行发布时,可以将相关的分支合并到master主分支上,然后才进行发布。

八、Git版本控制

查看历史记录

git log

显示完整的版本号,并且每个版本只打印一行

git log --pretty=oneline
git log --oneline

显示部分版本号,以及当前版本指针所指向的位置

git reflog
Logo

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

更多推荐