git知识和github知识来源于网络,本人进行测试与总结后自己截图发布。

Git是目前世界上最先进的分布式版本控制系统,和svn,vss等一样都是进行版本控制的。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

GitHub是一个软件项目的托管平台,相当于自己建立的 svn服务器,vss服务器,GitHub平台可以建立私人仓库和公开仓库,私人仓库需要收费,公开仓库不收费,但大家都可以免费下载(不可以更改)

接下来就讲解一下如何使用Git与GitHub

(1)  申请GitHub

打开网址:https://github.com/,点击signup,注册一个github账号

(2)下载并安装git

打开网址:https://git-scm.com/downloads

     Git与GitHub 学习笔记 随笔 第1张

 

 

点击windows,选择适合自己的版本,进行安装。

 Git与GitHub 学习笔记 随笔 第2张

 

 

(3)在某个磁盘下新建一个文件夹作为本地仓库

 Git与GitHub 学习笔记 随笔 第3张

 

 

点击右键 “git bash here”

配置自己的名称:

$ git config --global user.name 'test'

$ git config --global user.email 'test@test.com'

查询是否配置成功

$ git config --global user.name

$ git config --global user.email

 Git与GitHub 学习笔记 随笔 第4张

 

 

 

(3)在GitHub创建仓库

打开网址https://github.com/,并进行登录

点击your repositories,点击new,填写仓库信息,点击create repository

 Git与GitHub 学习笔记 随笔 第5张

 

 Git与GitHub 学习笔记 随笔 第6张

 

 Git与GitHub 学习笔记 随笔 第7张

 

 

 

 

(4)本地仓库和GitHub对接

首先创建密钥,上传到github,进行以后的身份验证

执行命令:$ ssh-keygen -t rsa -C *****@qq.com

这里的邮箱,必须是github账号的邮箱,根据提示进行输入

找到密钥存储位置,打开公钥,复制里面的内容

在github网站把此内容复制到相应窗口:

个人中心->setting->ssh and gpgkeys->new ssh key->add ssh key

 Git与GitHub 学习笔记 随笔 第8张

 

 

 Git与GitHub 学习笔记 随笔 第9张

 

 Git与GitHub 学习笔记 随笔 第10张

 

 

 Git与GitHub 学习笔记 随笔 第11张

 

 Git与GitHub 学习笔记 随笔 第12张

 

 Git与GitHub 学习笔记 随笔 第13张

 

 Git与GitHub 学习笔记 随笔 第14张

 

 

 

 

 

 

 

 

(5)github仓库clone到本地

执行一下命令:

$ git clone git@github.com:fengyuzhexing/test.git【自己的git地址】

输入密码

可以看到项目已经clone到本地了

 Git与GitHub 学习笔记 随笔 第15张

 

 Git与GitHub 学习笔记 随笔 第16张

 

 Git与GitHub 学习笔记 随笔 第17张

 

 Git与GitHub 学习笔记 随笔 第18张

 

 Git与GitHub 学习笔记 随笔 第19张

 

 Git与GitHub 学习笔记 随笔 第20张

 

 

 

 

 

 

 

 

(6)提交到本地仓库

在此目录下新建一个文件 test.txt,输入内容:testbegin,

把文件提交到本地仓库

首先运行pwd命令,看当前所在目录

切换目录到需要提交的文件目录

运行命令:

$ git add 'test.txt'

     $ git commit -m 'testfirst'

$ git log【查看提交记录】

 

 Git与GitHub 学习笔记 随笔 第21张

 

 

 

(7)提交到远程仓库

$ git push origin master

可以看到github网站已经有新建的文件了

 Git与GitHub 学习笔记 随笔 第22张

 

 

(8)创建分支

 

分支概念图

 

 

 Git与GitHub 学习笔记 随笔 第23张

 

 

 

通常情况下,github会有一个默认的主分支 master,这个分支一般都是存放最终发布版本的代码,一般情况下会建立一个新的分支 例如 dev,在这个分支上进行开发维护,最后在发布之前,合并到master分支。

每一个分支,都是一个独立的版本,拥有自己版本时间线,在不同分支下的操作是相互独立的。

接下来可以参看一下一个例子

  1. 新建分支 dev,并切换到分支

$ git checkout -b dev

$ git branch

可以看到已经切换到了dev这个分支,此时dev分支的内容和master是一样,相当于是从当前master进行了一份copy

 Git与GitHub 学习笔记 随笔 第24张

 

 

  1. 在dev下进行提交

当前在dev下的任何提交不会影响mater分支,只是在dev分支上进行处理

编辑test.txt 文件

 Git与GitHub 学习笔记 随笔 第25张

 

 

运行一下命令,提交

$ git add 'test.txt'

$ git commit -m 'dev'

$ git log

 

 

  Git与GitHub 学习笔记 随笔 第26张

 

 

 

  1. 切换到master,进行查看

$ git switch master

$ git branch

可以看到已经切换到了master

 Git与GitHub 学习笔记 随笔 第27张

 

 

再打开文件看内容是什么,可以看到这个文件的内容没有变化,还是master分支的数据。

 Git与GitHub 学习笔记 随笔 第28张

 

 

  1. 合并dev到master

$ git merge dev

 Git与GitHub 学习笔记 随笔 第29张

 

 

再次查看 master下的test.txt,可以看到dev数据被合并过来了

 Git与GitHub 学习笔记 随笔 第30张

 

 

删除dev分支

$ git branch -d dev

 

4 解决冲突

冲突出现的原因:

每个人在本地都有一套自己的源码库,在开发过程中

A 同学 修改了本地的 test.txt,

 B 同学 也修改了本地的 text.txt

这时候 A同学 把本地代码 push到 服务器仓库,B同学再想push到服务器仓库,就会出现问题,因为B同学不可以覆盖A同学的更改,所以这时候 B同学就要把代码pull下来就行代码合并,解决完冲突再上传到服务器仓库。

因为之前的改动都是在本地,所以首先将本地的代码先提交到github,运行以下命令

$ git push origin master

 Git与GitHub 学习笔记 随笔 第31张

 

 

打开github网站,可以看到本地数据和git服务器数据已经同步

 Git与GitHub 学习笔记 随笔 第32张

 

 Git与GitHub 学习笔记 随笔 第33张

 

 

 

  1. 模拟A同学修改本地代码

打开github后台,在线修改test.txt,然后提交

 Git与GitHub 学习笔记 随笔 第34张

 

 Git与GitHub 学习笔记 随笔 第35张

 

 

 

输入以下内容:

 Git与GitHub 学习笔记 随笔 第36张

 

 

输入 commit 备注,点击commit changes

 Git与GitHub 学习笔记 随笔 第37张

 

 

此时A同学已经把代码进行了更改,并且提交到服务器

  1. 模拟B同学修改代码

在本地仓库打开test.txt,输入以下内容:masterB-localchange

 Git与GitHub 学习笔记 随笔 第38张

 

 

在命令行输入 提交命令

$ git add 'test.txt'

$ git commit -m 'b-local'

 Git与GitHub 学习笔记 随笔 第39张

 

 

$ git push origin master

在提交到服务器仓库命令时,出现异常

 Git与GitHub 学习笔记 随笔 第40张

 

 

  1. 冲突解决

首先把服务代码拉取下来

$ git pull

 Git与GitHub 学习笔记 随笔 第41张

 

 

找到冲突文件,可以看到这里已经合并了文件,但有问题,需要自己手动编辑

 Git与GitHub 学习笔记 随笔 第42张

 

 

编辑后文件

 Git与GitHub 学习笔记 随笔 第43张

 

 

再次运行以下命令重新上传

$ git add 'test.txt'

$ git commit -m 'hebing'

$ git push origin master

上传成功了

 Git与GitHub 学习笔记 随笔 第44张

 

 

再次打开github网站查看内容,已经同步过去了

 Git与GitHub 学习笔记 随笔 第45张

 

 

(5)版本回退

回退版本命令:$ git reset --hard 【待回退的comitid】

 

有时候可能提交失败了,必须要回退回某一个版本可以运行以下命令:

$ git log

 Git与GitHub 学习笔记 随笔 第46张

 

 

可以回退到dev当时的版本,运行以下命令

$ git reset --hard 57554

Git与GitHub 学习笔记 随笔 第47张

 

 


可以看到数据已经回退回去了

 Git与GitHub 学习笔记 随笔 第48张

 

 

 

再运行 git

$ git reset --hard 8cf6c

可以看到版本又回来了

 Git与GitHub 学习笔记 随笔 第49张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄