操作系统是Ubuntu 16.04 LTS 64bit

1 安装git

  (1)安装

sudo apt-get install git-core

  (2)一些全局变量的初始化

  在本地建立一个文件夹,然后做一些全局变量的初始化

git config --global user.name 用户名或者用户ID

git config --global user.email 你邮箱

  这两个选项会在以后你提交代码至本地仓库时自动填写到你的提交记录中去。

2 使用git版本管理器本地管理你的项目

  (1)进入你项目的目录,进行git初始化,创建.git文件夹

git init

  执行后,你发现你的项目中多了一个.git隐藏文件夹。这样,你的本地仓库就已经建立好了。

  (2)管理哪此文件将被提交至中

  

  如上,git status命令显示了哪些文件将被提交至git中(绿色),哪此文件将会被untracked(红色)。我们可以能过git add和git rm来管理这些文件。

  (3)提交你的代码至git版本管理器

git commit -m 'first commit'

  使用git show命令可以查看到你的提交记录:

  

3 配置github SSH

  SSH是什么?SSH是Secure Shell,是一种认证方式,github可以采用两种认证方式:SSH和https。两种的区别是SSH需要进行SSH key配置,但是每次Pull的时候是不需要输入用户名密码的,而https每次都要输入用户名密码的。

  (1)检测是否能连接到github

ssh -T git@github.com

如果看到:
          Warning: Permanently added ‘github.com,204.232.175.90’ (RSA) to the list of known hosts.
          Permission denied (publickey).
则说明可以连接。

(2)创建本地SSH Key

ssh-keygen -t rsa -C "your_email"

  ~/.ssh目录下生成id_rsa(私钥)和id_rsa.pub(公钥)文件。

  (3)将此密钥(public key)上传至github

  同志。一定要有自己的github账户呀。没有的话就去官网注册一个。在网页版github中,依次点击Account settings(右上角倒数第二个图标) -> SSH Keys -> Add SSH Key,将id_rsa.pub文件中的字符串复制进去,注意字符串中没有换行和空格。

  (4)测试密钥是否成功

  与第一步相同:

ssh -T git@github.com

  如果看到:Hi xxx! You’ve successfully authenticated, but GitHub does not provide shell access,则密钥上传成功。

4  push本地git仓库至github仓库

  (1)首先,我们要在github中建造一个public仓库。去网页版傻瓜式操作。

  (2)本地git中设置远程github的仓库的url。如上节所讲,有两种方式:

    1)Https方式  

git remote add origin https://github.com/AndyQiao/makefile_test.git

    2)SSH方式

git remote add origin git@github.com:AndyQiao/makefile_test.git

  注意,这里的origin是远程仓库的一个别名,是任意的。我们之后向远程仓库里同步时,就使用这个别名。推荐origin作为所有项目的远程仓库的别名,这样就不会忘记了。不过。我们也可以使用git remote -v来查看:

  (3)push本地git至github远程仓库

git push origin master

  注意:(1)master指的是分支(branch)名字。一个仓库中默认的分支名字就是master,以后,你可以有别的branch;(2)如果上一步使用的是SSH方式,那么命令就直接执行,如果使用Https方式,则每次push都需要输入密码

5 pull、fetch与clone

  pull与push相反,是将代码从远程仓库同步至本地仓库并merge的命令

git pull origin master

  而fetch是单纯将代码从远程仓库同步至本地仓库,并不作merge。

git fetch
git diff origin/master
git merge origin

三个步骤分别代表:取远程仓库至本地,保存版本号至.git/FETCH_HEAD;比较远程origin/master分支与本地差别;将远程origin/master merge至本地仓库。与直接pull相比,fetch后可以直观看到远程仓库的不同,再决定是否要merge,更加安全。

  clone不是同步,而类似于下载。我们不仅可以clone自己的仓库,还可以clone别人的仓库,只需要知道相应的URL即可  

git clone git@github.com:AndyQiao/makefile_test.git code1

  注:code1是目标文件夹。

  git还是很牛逼的。不过有些项目用SVN更方便一些。以前在Window下编程我都用SVN的。要好好学习一下git!下午查各种资料,各种试验,再写博客,收获很多。加油。

6 log

  git log命令展示远程仓库的提交历史,-p选项展示每次提交的修改情况,-2选项展示最近两次提交历史

7 stash与stash pop

  git stash命令可以次工作区设置为上次提交后的情况,方便中途处理重要情况,之后通过stash pop将工作区恢复至之前的状况。

git与github安装、配置、pull、push的更多相关文章

  1. GitHub安装配置

    GitHub安装配置1.安装Git-1.9.5-preview20141217 2.配置config文件Windows(在命令行下)cd /d %userprofile%if not exist &q ...

  2. Git介绍及安装配置

    一.概述 1.1git概念 Git是一个开源的分布式版本控制系统,用于敏捷高效处理任意规模的项目,其作者为Linux创造者Linus Torvalds为管理Linux内核而开放的一个开源的版本控制柔软 ...

  3. CentOS6.4下Git服务器Gitosis安装配置

    1.安装GIt: #yum install git 2.增加一个git用户 #useradd git #passwd git 3.创建git仓库存储目录,设置权限 #mkdir /home/git/r ...

  4. git 连接github的配置

    这段时间要先在git上开发,上传代码到github上,所以首先需配置本地的git和github. 这几篇文章都不错,可以参考一下,大体的配置都很清楚. 1:https://blog.csdn.net/ ...

  5. GitHub 安装配置

    1:到 Github 注册 页面中注册,填写用户名.邮箱和密码 选择免费服务 步骤三可以根据自身喜好勾选或者直接跳过 2.1.2 创建远程仓库 创建完账号后,可以开始创建仓库 但是这里我们还没有验证邮 ...

  6. 【学习总结】Git学习-本地仓库覆盖式更新对于Git仓库的影响以及pull/push到GitHub

    < 许久不用Git之后的探索 > 准备日常更新自己的GitHub了.但是编写的文件平时不放在Git仓库路径下. 故测试覆盖式更新对于仓库是否有影响 直接说结论: 通过对已有库的测试发现覆盖 ...

  7. Git 学习之--安装配置GitHub

    楼主今天学习了一下Git的使用,而且Androdi studio 下加入了Git插件,成功提交项目到自己Github个人主页 watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...

  8. Git教程之安装配置(1)

    1.Git是什么? Git是目前世界上最先进的分布式版本控制系统. 2.SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...

  9. git简介及安装配置

    Git是一种分布式版本控制系统.它和集中式版本控制系统的区别有如下几点: 1).分布式版本控制没有中央服务器,每个人的电脑上都有完整的版本库: 2).分布式管理系统的安全性要高,如果某一台电脑的坏了, ...

随机推荐

  1. ABP框架 - 多租户

    文档目录 本节内容: 什么是多租户 多部署 - 多数据库 单部署 - 多数据库 单部署 - 单数据库 单部署 - 混数据库 多部署 - 单/多/混 数据库 ABP中的多租户 启用多租户 宿主与租户 会 ...

  2. 浅析Java 泛型

    泛型是JavaSE5引入的一个新概念,但是这个概念在编程语言中却是很普遍的一个概念.下面,根据以下内容,我们总结下在Java中使用泛型. 泛型使用的意义 什么是泛型 泛型类 泛型方法 泛型接口 泛型擦 ...

  3. JS设计模式(二)

    5.迭代器模式 先实现一个简单的迭代器,类似于JQ里的$.each方法. var each = function (arr, callback) { for (var i = 0, l = arr.l ...

  4. ASP.NET MVC5+EF6+EasyUI 后台管理系统(43)-工作流设计-字段分类设计

    系列目录 建立好42节的表之后,每个字段英文表示都是有意义的说明.先建立,就知道表的关系和用处了,当然,我的设计只是一个参考,你可能有很多改进的地方. 我们的工作流具体细节流程是这样的: 最终我们的模 ...

  5. 计算机程序的思维逻辑 (51) - 剖析EnumSet

    上节介绍了EnumMap,本节介绍同样针对枚举类型的Set接口的实现类EnumSet.与EnumMap类似,之所以会有一个专门的针对枚举类型的实现类,主要是因为它可以非常高效的实现Set接口. 之前介 ...

  6. c 线程(平行世界)

    我们已经知道如何使用进程来做一些事情了,然而 它并不是在什么地方都是最适合的. 我们看看进程的缺点是什么: 线程隆重登场 1. 如何创建线程 创建线程可以使用多种线程库,在此我们使用最流行的一种:PO ...

  7. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇三:批量处理后的txt文件入库处理

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  8. SIHA环境修改主机名实施步骤

    目 录 1 实施需求 2 修改主机名 2.1 停止HAS服务 2.2 修改主机名 3 重新配置服务 3.1 使用root用户重新配置CSS & OHAS服务 3.2 设置cssd自动启动属性 ...

  9. 学习SpringMVC——拦截器

    拦截器,顾名思义就是用来拦截的. 那什么是拦截,又为什么要拦截.对于Spring MVC来说,拦截器主要的工作对象就是用户的请求,拦截下来之后,我们可以在拦截的各个阶段悉心呵护[为所欲为].常见的比如 ...

  10. Android面试一天一题(1Day)

    写在前面 该博客思路源于在简书看到goeasyway博主写的Android面试一天一题系列,无copy之意,仅为让自己总结知识点,成长一点点.先感谢各位大神的无私分享~! 关于题目,大部分则出自And ...