参考资料:

1. http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

2. Git-简明教程

3. Github常见操作和错误

4. Pro Git

5. Github上传error: src...解决方案

☢ Git与Github之间传输

Git的定义:

"Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency"

Github的定义:

"GitHub is a web-based Git repository hosting service, which offers all of the distributed revision control and source code management (SCM) functionality of Git as well as adding its own features."

Git是一个版本控制系统,它是一个管理你源代码修改历史的工具,而Github则提供Git Repositories的远程托管服务。实际上,我们完全可以不需要Github,而直接用Git作为一个本地的版本控制系统。Github从某种意义上,有备份本地资源和利于合作的意思。

 

                    图1 Github支持的传输的协议      

由上图可以看出,Github支持两种协议:SSH和GPG协议进行传输。

sudo ssh-keygen -t rsa -C "youremail@example.com"

可以按上边的命令,创建ssh的公钥和私钥,并将公钥复制到Github上。请使用下边的命令进行测试ssh是否能通信成功:

sudo ssh -T git@github.com

☢ 关联本地Git项目与Github项目

在本地创建项目testProj将其关联到Github上创建的项目testProj。

创建本地项目testProj:

sudo mkdir testProj
cd testProj
sudo git init

在Github上创建testProj项目

          图2 在Github上创建项目

将本地项目与Giihub项目关联:

sudo git remote add origin git@github.com:yourUserName/testProj.git

或则,用下边的命令关联

sudo git remote add origin https://github.com/yourUserName/testProj.git

如果碰到出错信息:fatal:remote origin already exists,则先输入下边命令删除当前项目的origin,再输入上边的命令关联。

sudo git remote rm origin

如果仍然还有上边的错误,就得看gitconfig文件了,并将其中关于 remote origin的项删除再继续关联。

创建readme.txt,并将其push到github上。

sudo touch readme.txt
sudo git add readme.txt
sudo git commit -m 'Add readme.txt' sudo git push origin master

注意:如果没有创建readme.txt文件,而直接调用最后一行的代码,会产生error: src refspec master does not match any(不能push空目录)。

现在,我们就可以在本地修改,并将改动push到remote的Github上了。另外,注意将本地push到远程时,readme.txt是在本地创建的,远程创建只是一个空目录。

☢ 远程克隆到本地

在远程Github上创建testProj2,里面包含一个README文件,且添加内容如下:

                    图三 在Git上创建testProj2

使用如下命令将远程Github项目testProj2克隆到本地:

sudo git clone git@github.com:yourUserName/testProj2.git

☢ 创建并合并分支

在创建分支前,我们需先切换到testProj2里。

cd testProj2

然后,创建分支dev:

sudo git branch dev

然后,切换到分支dev:

sudo git checkout dev

注意:上边两条命令等价于下边一条命令:

sudo git checkout -b dev

然后,我们可以查看本地所有分支,其中,当前分支前会有一个*号:

sudo git branch

查看远程分支:

sudo  git branch -r

然后,对README.md文件进行修改,并提交。

然后,切换到master分支,此时,dev分支的改动并不在master分支上,所有我们看不见刚才的改动:

sudo git checkout master

然后,将dev合并到master上:

sudo git merge dev

合并完后,删除dev分支:

sudo git branch -d dev

Linux基础※※※※如何使用Git in Linux(二)的更多相关文章

  1. Linux基础※※※※如何使用Git in Linux(一)

    参考资料: 1. https://www.linux.com/learn/tutorials/796387-beginning-git-and-github-for-linux-users/ 2. h ...

  2. Linux基础学习(1)--Linux系统简介

    第一章——Linux系统简介 1.UNIX和Linux发展史: 1.1 unix发展史: (1)1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发Mul ...

  3. 大数据学习笔记之Linux基础(一):Linux初窥

    文章目录 一.Linux入门概述 1.1 概述 1.2 下载地址 1.3 Linux特点 1.4 Linux和Windows区别 二.VM安装相关 2.1 安装VMWare虚拟机 2.2 安装Cent ...

  4. Linux基础回想(1)——Linux系统概述

    1. 什么是操作系统?它与硬件以及其它软件之间的关系是如何的? 操作系统是控制和管理计算机系统内各种硬件和软件资源.有效组织多道程序执行的系统软件(或程序集合),是用户和计算机之间的接口.详细的说: ...

  5. Linux基础之常用命令整理(二)

    Linux系统启动流程 bios(找到启动介质) --> mbr(找到boot loader  512B 446引导信息 64分区信息 2 标志位 ) -->grub(选择操作系统或者内核 ...

  6. linux基础-第十四单元 Linux网络原理及基础设置

    第十四单元 Linux网络原理及基础设置 三种网卡模式图 使用ifconfig命令来维护网络 ifconfig命令的功能 ifconfig命令的用法举例 使用ifup和ifdown命令启动和停止网卡 ...

  7. Linux基础教程(一)——Linux系统简介

    Linux的概述 Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于 ...

  8. java程序员菜鸟进阶(十五)linux基础入门(三)linux用户和组管理

    我们大家都知道,要登录linux操作系统,我们必须要有一个用户名和密码.每一个用户都由一个惟一的身份来标识,这个标识叫做用户ID.系统中的每一个用户也至少需要属于一个"用户分组". ...

  9. Linux基础学习(13)--Linux系统管理

    第十三章——Linux系统管理 一.进程管理 1.进程查看: (1)进程简介:进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源. (2)进程管理的 ...

随机推荐

  1. 关于JavaScript的判断语句(1)

    if语句: if( 判断条件 ){ 判断结果为true执行语句: } if...else语句: if(判断条件){ 判断结果为true时执行的语句: }else{ 判断结果为false时执行语句: } ...

  2. Maven-009-Nexus 用户密码加密(安全必须)

    信息数据大爆发的时代,我们关心什么?没错,数据安全!数据安全!数据安全!(重要事情说三遍,哈哈哈...) 之前我们存放在 maven settings.xml 文件中的 Nexus 私服用户密码都是明 ...

  3. iOS:融云即时通讯快速集成

    一.介绍 即时通讯在众多社交软件.生活软件以及教育软件中已经是必备的功能了,在当前国内,即时通讯SDK做的比较不错的有那么几家,例如环信SDK.融云SDK...,这两家做的都很不错,各有千秋吧,要是真 ...

  4. SQL Server索引进阶第五篇:索引包含列 .

    包含列解析所谓的包含列就是包含在非聚集索引中,并且不是索引列中的列.或者说的更通俗一点就是:把一些底层数据表的数据列包含在非聚集索引的索引页中,而这些数据列又不是索引列,那么这些列就是包含列.同时,这 ...

  5. Cross-Site Scripting(XSS)的类型

    本文源自: https://www.owasp.org/index.php/Types_of_Cross-Site_Scripting 在原文理解上翻译为中文. 背景 本文描述多种不同类型的XSS攻击 ...

  6. dubbo源码分析3-service bean的创建与发布

    dubbo源码分析1-reference bean创建 dubbo源码分析2-reference bean发起服务方法调用 dubbo源码分析3-service bean的创建与发布 dubbo源码分 ...

  7. request.get request.GET……

    发现他们是不同的. 报错: AttributeError at /add/ 'WSGIRequest' object has no attribute 'get' Request Method: GE ...

  8. 【Selenium】2.安装Selenium IDE和 FireBug

    本文供学习交流之用,没有商业用途,没有盈利. 完全是我自己为督促自己学习而翻译的.翻译的不好,见谅.来源于:http://www.guru99.com/install-selenuim-ide.htm ...

  9. Groovy学习笔记(二)

    在上一篇文章中我们主要学习了如何搭建Groovy开发环境,为我们的Groovy之旅做好了准备工作,不知道你是否准备好了?接下来我们就一起看看Groovy与我们熟悉的Java有什么异同. Groovy是 ...

  10. AJAX-----13HTML5中新增的API---FormData

    FormData 表单数据对象,这是在HTML5中新增的一个API,他能以表单对象做参数,自动的将表单的数据打包,当ajax发送数据是,发送FormData内的表单数据给后端即可 <!DOCTY ...