git与github安装、配置、pull、push
操作系统是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的更多相关文章
- GitHub安装配置
GitHub安装配置1.安装Git-1.9.5-preview20141217 2.配置config文件Windows(在命令行下)cd /d %userprofile%if not exist &q ...
- Git介绍及安装配置
一.概述 1.1git概念 Git是一个开源的分布式版本控制系统,用于敏捷高效处理任意规模的项目,其作者为Linux创造者Linus Torvalds为管理Linux内核而开放的一个开源的版本控制柔软 ...
- CentOS6.4下Git服务器Gitosis安装配置
1.安装GIt: #yum install git 2.增加一个git用户 #useradd git #passwd git 3.创建git仓库存储目录,设置权限 #mkdir /home/git/r ...
- git 连接github的配置
这段时间要先在git上开发,上传代码到github上,所以首先需配置本地的git和github. 这几篇文章都不错,可以参考一下,大体的配置都很清楚. 1:https://blog.csdn.net/ ...
- GitHub 安装配置
1:到 Github 注册 页面中注册,填写用户名.邮箱和密码 选择免费服务 步骤三可以根据自身喜好勾选或者直接跳过 2.1.2 创建远程仓库 创建完账号后,可以开始创建仓库 但是这里我们还没有验证邮 ...
- 【学习总结】Git学习-本地仓库覆盖式更新对于Git仓库的影响以及pull/push到GitHub
< 许久不用Git之后的探索 > 准备日常更新自己的GitHub了.但是编写的文件平时不放在Git仓库路径下. 故测试覆盖式更新对于仓库是否有影响 直接说结论: 通过对已有库的测试发现覆盖 ...
- Git 学习之--安装配置GitHub
楼主今天学习了一下Git的使用,而且Androdi studio 下加入了Git插件,成功提交项目到自己Github个人主页 watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...
- Git教程之安装配置(1)
1.Git是什么? Git是目前世界上最先进的分布式版本控制系统. 2.SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...
- git简介及安装配置
Git是一种分布式版本控制系统.它和集中式版本控制系统的区别有如下几点: 1).分布式版本控制没有中央服务器,每个人的电脑上都有完整的版本库: 2).分布式管理系统的安全性要高,如果某一台电脑的坏了, ...
随机推荐
- .NET基础拾遗(7)Web Service的开发与应用基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开发基 ...
- .net的简易多线程处理
这篇文章是对几年前写的<Task及其异常处理的若干事项>的一些狗尾续貂的补充. 更简单的写法 几年前写的那篇文章很详细地描述了.net用Task对线程进行封装的相关技术.开一个新的线程去执 ...
- 使用 SecurityManager 和 Policy File 管理 Java 程序的权限
参考资料 该文中的内容来源于 Oracle 的官方文档.Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以从这个总入口 Java SE 8 Documentati ...
- FreeBinary 格式说明
说明 简称FB格式,是一个简单的二进制文件打包格式. 作用是FBX.unity.js等交换的一个中间格式. 由李剑英制定,易于读取,易于扩展 相应的代码可以用svn取得 SVN:http://code ...
- 修改Tomcat响应请求时返回的Server内容
HTTP Server在响应请求时,会返回服务器的Server信息,比如 Tomcat 7 的Header是: 这东西其实会给一些别有用心之人带来一定的提示作用:为安全起见,我们一般会建议去掉或修改这 ...
- 实现ABP中Person类的权限功能
菜单项的显示功能已经完全OK了.那么我们就开始制作视图功能吧. 首先测试接口是否正常 我们通过代码生成器将权限和application中大部分功能已经实现了.那么我们来测试下这些接口ok不. 浏览/a ...
- ABP源码分析二十一:Feature
Feature是什么?Feature就是对function的分类方法,其与function的关系就比如Role和User的关系一样. ABP中Feature具有以下属性: 其中最重要的属性是name, ...
- Redis数据结构详解之List(二)
序言 思来想去感觉redis中的list没什么好写的,如果单写几个命令的操作过于乏味,所以本篇最后我会根据redis中list数据类型的特殊属性,同时对比成熟的消息队列产品rabbitmq,使用red ...
- PHP 面向对象编程和设计模式 (1/5) - 抽象类、对象接口、instanceof 和契约式编程
PHP高级程序设计 学习笔记 2014.06.09 什么是面向对象编程 面向对象编程(Object Oriented Programming,OOP)是一种计算机编程架构.OOP 的一条基本原则是计算 ...
- 【译】Unity3D Shader 新手教程(6/6) —— 更好的卡通Shader
本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 动机 如果你想了解以下几件事,我建议你阅读以下这篇教程: 想知道如何写一个multipass的toon shade ...