Git与GitHub 学习笔记

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

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

GitHub是一个软件项目的托管平台,至关于本身创建的 svn服务器,vss服务器,GitHub平台能够创建私人仓库和公开仓库,私人仓库须要收费,公开仓库不收费,但你们均可以避免费下载(不能够更改)windows

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

(1)  申请GitHub服务器

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

(2)下载并安装gitssh

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

     

 

 

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

 

 

 

(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

 

 

 

 

(3)在GitHub建立仓库

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

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

 

 

 

 

 

 

 

 

 

(4)本地仓库和GitHub对接

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

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

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

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

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

我的中心->setting->ssh and gpgkeys->new ssh key->add ssh key

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5)github仓库clone到本地

执行一下命令:

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

输入密码

能够看到项目已经clone到本地了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(6)提交到本地仓库

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

把文件提交到本地仓库

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

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

运行命令:

$ git add 'test.txt'

     $ git commit -m 'testfirst'

$ git log【查看提交记录】

 

 

 

 

 

(7)提交到远程仓库

$ git push origin master

能够看到github网站已经有新建的文件了

 

 

 

(8)建立分支

 

分支概念图

 

 

 

 

 

 

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

每个分支,都是一个独立的版本,拥有本身版本时间线,在不一样分支下的操做是相互独立的。

接下来能够参看一下一个例子

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

$ git checkout -b dev

$ git branch

能够看到已经切换到了dev这个分支,此时dev分支的内容和master是同样,至关因而从当前master进行了一份copy

 

 

 

  1. 在dev下进行提交

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

编辑test.txt 文件

 

 

 

运行一下命令,提交

$ git add 'test.txt'

$ git commit -m 'dev'

$ git log

 

 

  

 

 

 

  1. 切换到master,进行查看

$ git switch master

$ git branch

能够看到已经切换到了master

 

 

 

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

 

 

 

  1. 合并dev到master

$ git merge dev

 

 

 

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

 

 

 

删除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

 

 

 

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

 

 

 

 

 

 

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

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

 

 

 

 

 

 

输入如下内容:

 

 

 

输入 commit 备注,点击commit changes

 

 

 

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

  1. 模拟B同窗修改代码

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

 

 

 

在命令行输入 提交命令

$ git add 'test.txt'

$ git commit -m 'b-local'

 

 

 

$ git push origin master

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

 

 

 

  1. 冲突解决

首先把服务代码拉取下来

$ git pull

 

 

 

找到冲突文件,能够看到这里已经合并了文件,但有问题,须要本身手动编辑

 

 

 

编辑后文件

 

 

 

再次运行如下命令从新上传

$ git add 'test.txt'

$ git commit -m 'hebing'

$ git push origin master

上传成功了

 

 

 

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

 

 

 

(5)版本回退

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

 

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

$ git log

 

 

 

能够回退到dev当时的版本,运行如下命令

$ git reset --hard 57554

 

 


能够看到数据已经回退回去了

 

 

 

 

再运行 git

$ git reset --hard 8cf6c

能够看到版本又回来了

 

相关文章
相关标签/搜索