以下信息来源于网络资料,并进行整理与精简

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

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

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

(1)  申请GitHub

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

(2)下载并安装git

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

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

(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

可以看到版本又回来了

Git与GitHub 学习笔记的更多相关文章

  1. git和github学习笔记

    1. 了解Git和Github 2. 使用Github 3. Git安装和使用 4. Git基本工作流程 5. Git初始化及仓库创建和操作 6. Git管理远程仓库 7. Github Pages ...

  2. eclipse使用git及github学习笔记

    项目托管 1.首先需要在github上建立一个远端仓库  点击Create repository后,会在github上建立相应的git仓库,并会出现如下界面: 复制https或者ssh的仓库地址,远端 ...

  3. Git与GitHub学习笔记(七)Windows 配置Github ssh key

    前言 SSH是建立在应用层和传输层基础上的安全协议,其目的是专为远程登录会话和其他网络服务提供安全性的保障,用过SSH远程登录的人都比较熟悉,可以认为SSH是一种安全的Shell.SSH登录是需要用户 ...

  4. Git与GitHub学习笔记(三).gitignore文件忽略和删除本地以及远程文件

    一.Git提供了文件忽略功能.当对工作区某个目录或者某些文件设置了忽略后,git将不会对它们进行追踪 HELP:如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件 问题:最近 ...

  5. Git与GitHub学习笔记(八)git如何同时同步提交到码云和GitHub上

    前言: 今天github push代码一直push不上去,打算就备份一份代码带国内开源码云上. Github容易出现的情况是: 国内访问速度比较慢, 如果被墙掉的话,就直接没发使用了 如果开源个PHP ...

  6. Git与GitHub学习笔记(五)一次提交失败的记录

    代码已经跟踪了,添加注释说明,但是总是添加不了 error: pathspec 'live-page'' did not match any file(s) known to git. 重复了好多遍, ...

  7. git and github学习笔记

    1.git的状态分为working status,stage status和commit status.git diff查看的是working status和 stage status之间的不同,gi ...

  8. Git与GitHub学习笔记(六)使用 Github Pages 管理项目文档

    前言 你可能比较熟悉如何用 Github Pages 来分享你的工作,又或许你看过一堂教你建立你的第一个 Github Pages 网站的教程.近期 Github Pages 的改进使得从不同的数据源 ...

  9. Git与GitHub学习笔记(一)如何删除github里面的文件夹?

    按照以下步骤即可(本地删除) 1. git pull you git url2. git checkout 3. rm -r dirName4. git add --all5. git commit  ...

随机推荐

  1. Opencv python(3)| cv. VideoCapture.get() 参数介绍

    cv2.VideoCapture.get ()  的 (0-18)参数 cv2.VideoCapture.get(0)            视频文件的当前位置(播放)以毫秒为单位 cv2.Video ...

  2. 你了解MySQL的加锁规则吗?

    注:加锁规则指的是next-key lock,如果还不了解next-key lock,请阅读上一篇博客 加锁规则可以概括为:两个原则.两个优化和一个bug: 原则1:加锁的基本单位是next-key ...

  3. vue cli3.0^版本处理文件下载的问题

    downloadFile(url, fileName) { axios.get(url, { responseType: 'blob' }) .then(({ data }) => { // 为 ...

  4. .NET进阶篇06-async异步、thread多线程2

    知识需要不断积累.总结和沉淀,思考和写作是成长的催化剂 内容目录 一.线程Thread1.生命周期2.后台线程3.静态方法1.线程本地存储2.内存栅栏4.返回值二.线程池ThreadPool1.工作队 ...

  5. Java设计模式之模板方法模式(Template)

    前言: 我们在开发中有很多固定的流程,这些流程有很多步凑是固定的,比如JDBC中获取连接,关闭连接这些流程是固定不变的,变动的只有设置参数,解析结果集这些是根据不同的实体对象“来做调整”,针对这种拥有 ...

  6. Linux常用命令复习

    1> 查看文件信息:ls ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令. Linux文件或者目录名称最长可以有265个字符,“.”代 ...

  7. [error] hadoop:ls: `.': No such file or directory

    问题: 解决: https://stackoverflow.com/questions/28241251/hadoop-fs-ls-results-in-no-such-file-or-directo ...

  8. nyoj 86-找球号(一)二分法

    86-找球号(一) 内存限制:64MB 时间限制:3000ms 特判: No 通过数:14 提交数:48 难度:3 题目描述: 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数 ...

  9. 力扣(LeetCode)平方数之和 个人题解

    给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c. 示例1: 输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5 示例2: 输入: 3 ...

  10. C语言|博客作业03

    这个作业属于哪个课程 C程序语言设计 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/8654 我在这个课程的目标是 ...