GitHub远程仓库, Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。首先找一台电脑充当服务器的角色,

每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。

可以自己搭建这台服务器,也可以使用代码托管网站如GiuHub,码云.

Git 安装配置

在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。

Git 各平台安装包下载地址为:http://git-scm.com/downloads

Git 简易指南:http://www.bootcss.com/p/git-guide/

Pro Git 中文版(第二版)让你从 Git 初学者成为 Git 专家:https://progit.bootcss.com/

Ubuntu

  1. $ apt-get install git-core
  2. $ git --version
  3. git version 1.8.1.2

Git 配置

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。

这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • /etc/gitconfig文件:系统中对所有用户都普遍适用的配置。若使用git config时用--system选项,读写的就是这个文件。
  • ~/.gitconfig文件:用户目录下的配置文件只适用于该用户。若使用git config时用--global选项,读写的就是这个文件。
  • 当前项目的 Git 目录中的配置文件(也就是工作目录中的.git/config文件):这里的配置仅仅针对当前项目有效。
  • 每一个级别的配置都会覆盖上层的相同配置,所以.git/config里的配置会覆盖/etc/gitconfig中的同名变量。

用户信息

配置个人的用户名称和电子邮件地址:

  1. $ git config --global user.name "yichuan"
  2. $ git config --global user.email yichuan@itxdl.cn

如果用了--global选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。

如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

查看配置信息

要检查已有的配置信息,可以使用 git config --list 命令:

  1. $ git config --list
  2. http.postbuffer=2M
  3. user.name=yichuan
  4. user.email=yichuan@itxdl.cn

有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如 /etc/gitconfig 和 ~/.gitconfig),不过最终 Git 实际采用的是最后一个。

这些配置我们也可以在~/.gitconfig或/etc/gitconfig看到,如下所示:

  1. vim ~/.gitconfig

显示内容如下所示:

  1. [http]
  2. postBuffer = 2M
  3. [user]
  4. name = yichuan
  5. email = yichuan@itxdl.cn

也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:

  1. $ git config user.name
  2. yichuan

1,创建码云账号,github类似,注册账号.

参考文档: http://git.mydoc.io/?t=179267

2,创建远程项目,github类似,新建空的项目.

参考文档: http://git.mydoc.io/?t=180676

3,公钥认证管理

参考文档: http://git.mydoc.io/?t=180845

开发者向码云版本库写入最常用到的协议是 SSH 协议,因为 SSH 协议使用公钥认证,可以实现无口令访问,

而若使用 HTTPS 协议每次身份认证时都需要提供口令。使用 SSH 公钥认证,就涉及到公钥的管理。

1.如何生成ssh公钥


你可以按如下命令来生成sshkey:(这个邮箱是您注册github的邮箱地址)

  1. ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
  2. # Generating public/private rsa key pair...
  3. # 三次回车即可生成 ssh key

查看你的 public key,并把他添加到码云(Gitee.com) SSH key添加地址

  1. cat ~/.ssh/id_rsa.pub
  2. # ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

添加后,在终端(Terminal)中输入(GitHub就输入 git@github.com)

  1. ssh -T git@gitee.com

若返回 Welcome to Gitee.com, yourname!则证明添加成功。

GitHub会提示------>   Hi ---! You've successfully authenticated, but GitHub does not provide shell access.

2.怎么添加用户ssh key?


  1. 点击右上角的标志,进入个人中心,然后点击左侧的ssh公钥后在下图位置填写你的ssh公钥。

  2. 点击确定,然后验证密码(即你的注册账号密码)就完成了ssh公钥添加。

3.项目的 ssh key 和用户的 ssh key 两处地方有什么不同?


项目的 ssh key 只针对项目,且我们仅对项目提供了部署公钥,即项目下的公钥仅能拉取项目,这通常用于生产服务器拉取仓库的代码。 而用户的 key 则是针对用户的,用户添加了 key 就对用户名下的项目和用户参加了的项目具有权限,一般而言,用户的 key 具有推送和拉取的权限,而项目的 key 则只具有拉取权限

GitHub下添加SSH Key------>  进入github账号,在settings下,选SSH and GPG keys, 点击new SSH key

点击new SSH key后,在title栏里自定义名字(注册邮箱),然后将上一步复制的密钥(以ssh-rsa 开头,以github账号的注册邮箱结尾的)粘贴到此处。

然后点击Add SSH Key.

4,从远程库克隆(项目地址是github上项目的ssh地址.)

  1. git clone <项目地址>

  2. 例如:
  3. git clone git@gitee.com:yichuan/pyweb.git

5,与远程库交互

从远程库获取到本地

  1. git pull origin master

将本地提交远程库

  1. git push origin master

提示:如果是多人协同开发每次提交前,需要先获取,解决冲突后再次提交

GitHub的操作:

基本概念

工作区:就是你在电脑里能看到的目录。

暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

基本使用

简单快捷操作步骤:

git使用     1.下载git      2.配置
           $ git config --global user.name "yichuan"
           $ git config --global user.email yichuan@itxdl.cn
3.创建码云的远程仓库       4.生成公钥 病添加到码云
5.下载项目
    ssh
    git clone 地址
6.修改      7.提交
1.将修改内容提交至暂存区
  git add .
2.提交到本地仓库
  git commit -m '修改说明'
3.提交到远程
  git push

在本地项目中完成开发后先add提交至本地暂存区

  1. git add 文件1 文件2 ...
  2. git add 目录
  3. git add .

在本地暂存区commit提交至本地仓库

  1. git commit -m '本次提交的说明信息'

把当前项目推送至push远程仓库进行更新

  1. git push origin master

查看暂存区的状态

  1. git status + git push (不用上一步)

查看仓库区的历史

  1. 当前版本的历史版本:git log
  2. 简版显示:git log --pretty=oneline
  3. 历史命令:git reflog

对比工作区和仓库区中某版本某文件的不同

  1. git diff HEAD -- 文件名

回退历史版本到暂存区

  1. git reset HEAD^或版本号

 (后续github还有好多内容)

Git学习系列 -- Not a git repository错误解决方法

fatal: Not a git repository (or any of the parent directories): .git

提示说没有.git这样一个目录。

解决办法如下:运行git init就可以了!

git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation的解决办法

在服务器添加完公钥后报错

  sign_and_send_pubkey: signing failed: agent refused operation

这个时候我们只要执行下

  eval "$(ssh-agent -s)"
  ssh-add
就可以了.
(github克隆到本地linux, 有些项目有权限问题,只有sudo su 进入到root 权限才可以操作文件.)
(方法是删除秘钥,重新配置用户密码和生成新的秘钥,在普通用户下操作,如报上面的错误,解决即可.)

GitHub 远程仓库 de 第一次配置的更多相关文章

  1. iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )

    一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的   git的起源 作者是Linux之父:Linus Bened ...

  2. github远程仓库初始化配置

    github远程仓库的提交一般是通过shell进行,windows下有Git Bash工具(https://git-for-windows.github.io/) 由于本地Git仓库和GitHub仓库 ...

  3. Git本地仓库push至GitHub远程仓库每次输入账户密码问题解决(亲测可行)

    在使用git push命令将本地仓库内容推送至GitHub远程仓库的每一次git都要让我们输入GitHub的用户名和密码.这着实让我们心烦.我们会有疑问,我明明设置了公钥呀!怎么还需要输入账户和密码? ...

  4. 使用git将本地仓库同步到github远程仓库

    一.下载安装git客户端windows版本 二.建立本地仓库文件夹 三.在本地仓库里右键点击Git Bash Here 四.初始化本地仓库 [git init] 执行之后仓库中会创建隐藏的文件夹.gi ...

  5. git笔记之eclipse使用github远程仓库进行版本号管理

    原文地址:http://dtbuluo.com/90.html 这里记录一下eclipse开发工具中git的使用说明. 环境:centOS.eclipse-jee-kepler-SR2-linux-g ...

  6. Git - Git本地仓库与GitHub远程仓库关联

    前言 Git本地仓库与GitHub仓库的关联逻辑如下 创建Key 在本地仓库下,新建Key文件夹,然后打开Key文件夹,单击鼠标右键,选择Git Bash Here. 输入命令:ssh-keygen ...

  7. Github首次使用教程(本地新建项目并同步到Github远程仓库)

    网上关于Github的教程很多且有点乱,自己亲自躺坑实践,现分享出来给将要入坑的小伙伴. 主要步骤: 创建Github帐号,登录,新建仓库(远程仓库) 下载安装Git,git bash配置及简单使用( ...

  8. 创建Github远程仓库

    如何创建github远程仓库 首先, 你有先到github网站注册账号https://github.com 然后创建一个项目, Create a new repository 之后在在Reposito ...

  9. git关联github远程仓库的问题

    git关联github远程仓库的时候,报fatal: remote origin already exists. 导致这个问题原因可能是之前关联的时候关联错了,再次关联就不行了. 解决办法是: 1.将 ...

随机推荐

  1. 【转载】JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案

    JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案 本文为转载,原文地址为:https://www.cnblogs.com/adversary/p/103 ...

  2. CGContextRef&CGMutablePathRef&UIBezierPath简单学习

    简单的四句介绍 Quartz是一个二维绘图引擎,使用的是CoreGraphics库,同时支持iOS和Mac系统 CGContextRef:获取图形上下文.或者叫作用域,即画布,他是专门用来保存绘画期间 ...

  3. 如何解决div背景色半透明,里面的图片不透明问题

    用rgba可以实现,不能用opacity 背景做成透明的背景图,opacity属性影响子集的,除非把两者独立开~

  4. Jenkins详细教程

    大纲 1.背景 在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试: 或者前后端分离后,经常会修改接口,然后重新部署 ...

  5. js switch case 判断的是绝对相对===,值和类型都要相等

    js switch case 判断的是绝对相对===,值和类型都要相等

  6. 给 linux redis 设置密码

    在redis.conf 找到 下面添加一行: 这样的话,密码就可以设置成123456,然后重启redis就可以了.

  7. 【hadoop】hadoop3.2.0应用环境搭建与使用指南

    下面列出我搭建hadoop应用环境的文章整理在一起,不定期更新,供大家参考,互相学习!!! 杂谈篇: [英语学习]Re-pick up English for learning big data (n ...

  8. MySQL MHA工作原理

    MHA工作组件 MHA(Master High Availability)是一种MySQL高可用解决方案,由日本DeNA公司开发,主要用于在故障切换和主从提升时进行快速切换,并最大程度保证数据一致性. ...

  9. ubifs使用方法

    常用命令: 查看块设备分区信息cat /proc/mtd 查看块设备信息mtdinfo /dev/mtd0 格式化mtd分区ubiformat /dev/mtd0 将mtd分区与ubi关联ubiatt ...

  10. video基础介绍&封装react-video基础组件,ES6

    好几个月没有写博客了,人都赖了,今天抽了一点时间把最近项目react中video整理了一下(感觉这个以后用的活比较多) 1.前三部部分详细归纳了video的基础知识,属性和功能: 2.第四部分是封装了 ...