菜鸟级的Git与GitHub使用总结(转)
菜鸟级的Git与GitHub使用总结
- 1792
前言
这几天一直在折腾学习Git和GitHub的使用。几天下来,在网上查阅了大量的资料,总算有一些成果。作为一个已经工作两年了的菜鸟程序员,现在才来学习使用Git及github,实在忏愧。网上某大神说的好,不会使用Git和github,根本算不上是Coder,而只是一名code搬运工,因此在这里我将我这两天折腾学习成果及心得在此做个总结,以方便以后查阅。
Git与github介绍
Git:代码版本控制管理工具(类似SVN)
官网下载地址:https://git-scm.com/downloads
下载安装过程就不在此叙述了,安装成功后,在资源管理器任意位置单机右键,弹出的对话框包括如下图选项:
声明:本人只在windows环境下开发,文章所有内容都只是针对Windows系统下的说明(本人系统Windows10),其它高大上的什么Linux/Mac等环境下是怎么样我就不得而知了(PS:穷,用不起Mac/Linux)。
说明:
Git GUI Here:点击打开Git图形化管理界面(因为网上大多都只是介绍了Git Bash Here这一块的使用,我也还没来得及研究这一块功能,这里就不做介绍)
Git Bash Here:点击打开Git命令终端窗口(类似Linux下的shell)如图:
我们提交、更新文件等操作都可以通过git命令在此完成(下面介绍)。
Github:
这是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。Github由Chris Wanstrath, PJ Hyett 与TomPreston-Werner三位开发者在2008年4月创办。迄今拥有59名全职员工,主要提供基于git的版本托管服务。
github官网:https://github.com/
至此,我们知道,Git是我们电脑本地的代码或文件版本管理工具,而github是代码或文件托管云平台。首先,明确我们的目标。我们的目标是,将本地代码同步到github平台上。OK,就这么一个小目标。
1.注册登陆到github官网(这里不用叙述吧)
2.创建仓库(Repository)
登陆github后,点击右上角加号,选择“New repository”,进入页面如下:
填写好你的仓库名称(Repository name)、描述(Description),选择Public(当然,如果你是土豪,也可以选择Private,要付费的哦),最后一个选不选无所谓。点击下面绿色按钮create repository,仓库就建好了。进入下一个页面,如果你在上一步操作没有选择Initialize this repository with a README选项的话(即创建的仓库里没有任何内容,选择了它会自动初始化生成一个README.md文件),你看到的页面如下:
这里有一些提示操作内容,就是告诉我们怎么样往这个仓库里添加文件了。注意到,这里的提示操作都是git操作,因此我们要转战到我们的Git工具上了。
不过别急,再次之前,我们还有一件事情要做。
什么呢?添加SSH Key。
什么鬼?这是什么东东?干嘛用的?不加这个东西会怎么样?
我也不知道。好,这里就先跳过一些步骤操作Git,看看我们不加这个什么SSH Key会怎么样。
先掠过一些步骤,我们直接到Git提交代码操作(没有添加SSH Key的时候)看看会出现什么情况。
遇到点问题,以后再写。。。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
好尴尬,好尴尬,真的好尴尬!!!怎么回事呢?按理说,根据github官方API说明,本地Git要和远程github建立联系,是需要在本地Git生成SSH Key,再将SSH Key添加到你的github上的。然后我们才可以在本地Git执行commit、push等操作。但是……但是,就在刚才我要试验没有添加SSH Key会出现什么情况时,就是将github上的SSH Key delete后,在本地执行commit、push操作,竟然成功了,成功了……成功了?WTF?(一脸懵逼)
看看官方文档解释:
SSH keys are a way to identify trusted computers without involving passwords.
You can generate an SSH key and add the public key to your GitHub account by following the procedures outlined in
this section.
什么意思呢?用我拙劣的CET-4水平翻译下:SSH Key是一种不需要通过密码而与计算机建立信任的一种秘钥(有点像accessToken)。
就是说,本地计算机Git可以通过SSH Key与远程github建立一种信任关系,从而在本地不需要密码就能执行相应git操作。
恩,是这个意思吧。记得我初次安装好Git,还没添加SSH Key时执行commit等操作时是失败的,提示:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
意思很明显,就说你没有权限(还没有和github建立信任关系)。所以根据github官方说明我添加SSK Key后,所有git操作都能顺利执行。至于现在删掉SSH Key之后为什么还能执行相应操作?我也不清楚,你说为什么呢?@张鸿洋@郭霖(莫非是因为我之前通过SSH Key连接过,所以github已经记录了电脑的id并保持了之前的信任关系?)
哎,先不管这茬,我们还是按照官方要求的来,继续吧……
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
创建SSH Key
按github官方要求,在创建SSH Key之前,我们先检测下我们电脑是否已经存在SSH Key。在Git Bash下执行下面命令:
type %userprofile%\.ssh\id_rsa.pub
如果检测到存在,则会返回一大串以ssh-rsa开头的字符串,没错,这就是SSH Key
这里再说下我遇到的怪事,我在Git Bash下执行这条命令时查找不到SSH Key,提示:bash: type: %userprofile%.sshid_rsa.pub: not found,但是我在cmd下执行时显示的又是有SSH Key的(实际上也确实是存在的)。
如果你显示的也是存在的,那恭喜你可以跳过这一步,直接把这串以ssh-rsa开头的字符串拷贝添加到github上就行了。
如果不存在,没关系,我们创建,执行下面命令:
- <span style="font-size:14px;">ssh-keygen -t rsa -C "***@***(你在github上注册的邮箱地址)"</span>
回车后它会要求你设置验证密码,也可为空
OK,在此执行检测命令就可以看到了。
然后到github上点击右上角头像选择“setting”,选择“SSH and GPG Key”,点击New SSH key,按步骤添加就行了。
点击Add SSH key就OK了。可能会要你输入验证密码,就是你的github账户密码。
至此,完成这些步骤,我们就完成80%的工作了。
接下来就是配置在Git上配置我们的用户信息了。执行下面命令:
$ git config --global user.name "userName"
$ git config --global user.email "userEmail"
更多关于config的信息,可以查看官方说明:点击打开链接
好了,一切就绪,我们来实现我们的小目标吧
将本地文件同步到github一般步骤:
在该文件目录下打开Git Bash,按顺序键入以下命令:
1. git init:将当前目录初始化为git 仓库(Repository),命令执行完毕后会在当前目录下生成一个.git隐形文件夹,里面包涵了一些git仓库初始配置文件
2. git add . :将当前目录下的所有文件和文件加及其子文件加入git版本控制(除了一些被过滤的文件),执行后说明现在这些可以提交到服务器了。当然你也可以添加指定文件(git add fileName)。注意,add 后面跟着“.”,表示当前目录。
3. git commit –m “commit message”:提交文件到缓存,并加上提交信息(必须)
4. git remote add origin https://github.com/username/gitProject.git:(对应的github远程仓库地址)。如果你是第一次提交项目,这一句非常重要,这是你本地的当前的项目与远程的哪个仓库建立连接。
例如:git remote add origin https://github.com/username/gitProject.git
5. git push –u origin master:将你刚刚add的文件上传到github对应仓库
如果成功,你登陆到github查看相应仓库就可以看到你刚刚提交的文件,并带有commit信息。
6. git status:查看是否提交成功与否。如果执行后返回信息没有红色或绿色(默认颜色,一些改动过但还未同步到github上额文件信息)文字,这表明当前无可提交内容,即提交成功。
将github远程文件克隆到本地一般步骤:
1. 找到合适的文件位置创建目录(作为接下来要克隆github上项目的本地仓库)
2. git init:进入新建目录,跟上面一样初始化本地仓库
3. git clone https://github.com/username/gitProject.git:将远程仓库文件clone到本地
最后,加一些我们在执行Git命令是可能会遇到的一些问题:
可能遇到的问题:
1. 执行gitpush –u origin master,出现如下错误提示:
error: srcrefspec master does not match any.
error: failed to push some refs to'https://github.com/zhusp1990/PenpaiNews.git'
原因:本地仓库为空
解决办法:执行下面命令
git add . (将当前目录下的所有文件添加到版本控制)
git commit –m ‘commit message’ (提交信息)
2. 执行git push -u origin master,出现如下错误提示
To https://github.com/zhusp1990/PenpaiNews.git
![rejected] master -> master(fetch first)
error: failed to push some refs to'https://github.com/zhusp1990/PenpaiNews.git'
hint: Updates were rejected because the remotecontains work that you do
hint: not have locally. This is usually caused byanother repository pushing
hint: to the same ref. You may want to firstintegrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push--help' for details.
原因:远程文件(及GitHub上对应的仓库文件)包含了你本地没有的文件,你需要首先将远程文件同步到本地。
解决方法:
git pull--rebase origin master(同步远程文件到本地)
先写这么多,关于github与Git,还有许多要我们注意学习的东西,以后慢慢完善吧。
菜鸟级的Git与GitHub使用总结(转)的更多相关文章
- 【学习】Git和Github菜鸟入门
Git 是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 目录(自己创建吧) 生成ssh密钥:ssh-keygen -t rsa -C "邮箱" ...
- Git 一些关于 Git、Github 的学习资源
一些关于 Git.Github 的学习资源 昨天浏览 Github 的是时候发现了 Githug 这个游戏,这个游戏用来帮助菜鸟们学习使用 Git 的. Githug is designed to g ...
- SVN 、Git、Github的使用
1.1 SVN 总结以及使用建议 每一次保存历史记录实际上就是一次提交 什么时候去保存历史记录? 完成了一个具体的功能模块 代码运行没有bug 当天工作结束提交一次 没有 bug 的前提下去提交一次 ...
- 从Git到GitHub,详细教程
众所周知,一个稍微有点规模的项目,都不可能是一个人单打独斗完成的(能完成的大神别打我),所以,一个高效的项目团队就需要一个NB的工具来进行有效的交流(曾经有人问我企鹅不就可以吗,我竟无言以对),今天就 ...
- GIt 和 Github
原创 by zoe.zhang GitHub中采用的比较多得是markdown的语法,博客园里对markdown的支持感觉不是特别友好,但是为了应景,还是用了markdown来写这一篇文 ...
- Git与GitHub入门
一.git起步https://www.runoob.com/git/git-install-setup.html1.下载git(Windows)2.安装GUI(TortoiseGit)3.查看git配 ...
- 简单使用Git和Github来管理自己的代码和读书笔记
原文链接:http://my.oschina.net/bxxfighting/blog/378196 先注册github.com的账号官方网站: https://github.com/ 注册界面, ...
- git for windows 的默认工作路径(HOME)的设置以及Git与GitHub之间的SSH加密协议
1.安装及配置默认路径 Windows中从GitHub上面:https://git-for-windows.github.io/ 下载安装好git后(双击,改一下需要的安装路径,一路确定就好了),安装 ...
- git与github安装、配置、pull、push
操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...
随机推荐
- android客户端登录&注册的实现
MainActivity多线程的实现: package com.example.loginconnect; import java.lang.ref.WeakReference; import jav ...
- [原创]java WEB学习笔记02:javaWeb开发的目录结构
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- 【leetcode刷题笔记】Unique Binary Search Trees
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...
- Python 3 mysql 表操作
Python 3 mysql 表操作 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为 ...
- 最小生成树prim算法 POJ2031
#include<iostream> #include<algorithm> #include<string.h> #include<ctype.h> ...
- MySQL部署时Table 'mysql.plugin' doesn't exist的解决
今天部署了免安装版的MySQL,出现了Table 'mysql.plugin' doesn't exist的问题,苦恼了好久,终于在网上找到了解决方案,现整理一下给大家分享: 系统环境:Win10 6 ...
- BZOJ 3890 [Usaco2015 Jan]Meeting Time:拓扑图dp
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3890 题意: 给你一个有向图,n个点(n <= 100),m条边. 且所有的边都是从 ...
- jQuery - 获取/设置内容和属性
获得内容 - text().html() 以及 val() 三个简单实用的用于 DOM 操作的 jQuery 方法: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元 ...
- How to handle Imbalanced Classification Problems in machine learning?
How to handle Imbalanced Classification Problems in machine learning? from:https://www.analyticsvidh ...
- python-Django监控系统二次开发Nagios
1.Nagios安装 yum install -y nagios.i686 yum install -y nagios-plugins-all.i686 安装完后会在apache的配置文件目录下/et ...