【Github教程】史上最全github用法:github入门到精通

原文 http://www.eoeandroid.com/thread-274556-1-1.html

【初识Github】

首先让我们大家一起喊一句“Hello Github”。YEAH!就是这样。

Git是一个分布式的版本号控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其他项目中也取得了非常大成功,尤其是在Ruby社区中。眼下,包含Rubinius和Merb在内的非常多知名项目都使用了Git。Git相同能够被诸如Capistrano和Vlad the Deployer这种部署工具所使用。相同,eoe.cnclient的源代码也托管在github上。

GitHub能够托管各种git库,并提供一个web界面,但与其他像 SourceForge或Google Code这种服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码很easy:首先点击项目网站的“fork”的button,然后将代码检出并将改动增加到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。

在GitHub进行分支就像在Myspace(或Facebook…)进行交友一样,在社会关系图的节点中不断的连线。

GitHub 使用 git 分布式版本号控制系统,而 git 最初是 Linus Torvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,因此 git 和 Windows 从来不是最好的朋友,由于它一点也不像 Windows。GitHub 公布了GitHub for Windows,为 Windows 平台开发人员提供了一个易于使用的 Git 图形client。

GitHub For Windows

GitHub for Windows 是一个 Metro 风格应用程序,集成了自包括版本号的 Git,bash 命令行 shell,PowerShell 的 posh-git 扩展。GitHub 为 Windows 用户提供了一个主要的图形前端去处理大部分经常使用版本号控制任务,能够创建版本号库,向本地版本号库递交补丁,在本地和远程版本号库之间同步。微软也通过CodePlex向开发人员提供 git 版本号控制系统,而 GitHub 创造了一个更具有吸引力的 Windows 版本号。

GitHub上已自己主动配置的Mac笔记本电脑,一个工具,能够转换设置Linux或Windows机器。

BOXEN是GitHub的自己主动化工具,设置和配置的Mac笔记本电脑软件开发[3]或其它类型的工作,正在使用他们的开发者,律师,设计师,付货人,等。我们的想法是准备系统以自己主动方式和作为无差错尽可能用最少的干预工作。依据GitHub上,与一个新的开发机器上,他的Mac系统成立,并准备在30分钟内提交代码。

BOXEN的基础上收集了大量的几十个木偶模块,使设置的各种软件,如卡桑德拉,MongoDB中,Java软件中,Python和Ruby开发中,节点,JS,nginx的,Skype公司,甚至MINECRAFT。尽管机器上配备了一个预配置,每一个用户都能够调整它的配置应有的作用。

【怎样使用】

1.注冊账户以及创建仓库
要想使用github第一步当然是注冊github账号了。之后就能够创建仓库了(免费用户仅仅能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程。

2.安装clientmsysgit
github是服务端,要想在自己电脑上使用git我们还须要一个gitclient,我这里选用msysgit,这个仅仅是提供了git的核心功能,并且是基于命令行的。假设想要图形界面的话仅仅要在msysgit的基础上安装TortoiseGit就可以。

装完msysgit后右键鼠标会多出一些选项来,在本地仓库里右键选择Git Init Here,会多出来一个.git目录,这就表示本地git创建成功。右键Git Bash进入git命令行,为了把本地的仓库传到github,还须要配置ssh key。

3.配置Git

首先在本地创建ssh key;

ssh-keygen -t rsa -C "your_email@youremail.com"



后面的your_email@youremail.com改为你的邮箱,之后会要求确认路径和输入password,我们这使用默认的一路回车即可。成功的话会在~/下生成.ssh目录,进去,打开id_rsa.pub,复制里面的key。

回到github,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴key。为了验证是否成功,在git bash下输入:

$ ssh -T git@github.com

假设是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。

接下来我们要做的就是把本地仓库传到github上去,在此之前还须要设置username和email,由于github每次commit都会记录他们。

$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"

进入要上传的仓库,右键git bash,加入远程地址:

$ git remote add origin git@github.com:yourName/yourRepo.git

后面的yourName和yourRepo表示你再github的username和刚才新建的仓库,加完之后进入.git,打开config,这里会多出一个remote “origin”内容,这就是刚才加入的远程地址,也能够直接改动config来配置远程地址。

4.提交、上传

接下来在本地仓库里加入一些文件,比方README,

$ git add README
$ git commit -m "first commit"

上传到github:

$ git push origin master

git push命令会将本地仓库推送到远程server。
git pull命令则相反。

改动完代码后,使用git status能够查看文件的区别,使用git add 加入要commit的文件,也能够用git add -i来智能加入文件。之后git commit提交本次改动,git push上传到github。

5.gitignore文件

.gitignore顾名思义就是告诉git须要忽略的文件,这是一个非常重要而且非常有用的文件。一般我们写完代码后会运行编译、调试等操作,这期间会产生非常多中间文件和可运行文件,这些都不是代码文件,是不须要git来管理的。我们在git status的时候会看到非常多这种文件,假设用git add -A来加入的话会把他们都加进去,而手动一个个加入的话也太麻烦了。这时我们就须要.gitignore了。比方一般c#的项目我的.gitignore是这样写的:

bin
*.suo
obj

bin和obj是编译文件夹,里面都不是源码,忽略;suo文件是vs2010的配置文件,不须要。这样你在git status的时候就仅仅会看到源码文件了,就能够放心的git add -A了。

6.tag

我们能够创建一个tag来指向软件开发中的一个关键时期,比方版本更新的时候能够建一个“v2.0”、“v3.1”之类的标签,这样在以后回想的时候会比較方便。tag的使用非常easy,主要操作有:查看tag、创建tag、验证tag以及共享tag,这些以下的博客中有具体解说。


【Github的相关使用文章】
Git介绍,安装,Git+Git flow使用:http://my.eoe.cn/fogs/archive/799.html
Git 指令集:http://my.eoe.cn/iceskysl/archive/463.html
在mac上安装git-flow过程:http://my.eoe.cn/iceskysl/archive/118.html
git fetch 的简单使用方法:更新远程代码到本地仓库:http://my.eoe.cn/com360/archive/3533.html
git 怎样让单个文件回退到指定的版本号:http://my.eoe.cn/com360/archive/3351.html
怎样使用Github上的开源项目:http://my.eoe.cn/fengyiyezi/archive/3427.html
Window(8)下安装 MSysGit 、gitflow 、GitHub:http://my.eoe.cn/sunxun/archive/158.html
git 打tag:http://my.eoe.cn/xiayang6/archive/446.html
基于Github參与eoe的开源项目指南:http://my.eoe.cn/iceskysl/archive/3195.html
Git stash 用法:http://my.eoe.cn/sunxun/archive/190.html
Git tag的使用:http://my.eoe.cn/futurexiong/archive/1943.html

大白话解说怎样给github上项目贡献代码:http://my.eoe.cn/leigo/archive/3221.html


最后再推荐几篇社区里介绍知道github使用的帖子:
githup的使用
http://www.eoeandroid.com/thread-272837-1-1.html

Eclipse上GIT插件EGIT使用手冊 
http://www.eoeandroid.com/thread-273360-1-1.html

ubuntu下gitserver的搭建
http://www.eoeandroid.com/thread-273167-1-1.html

git , vim , ls 全局配置
http://www.eoeandroid.com/thread-229638-1-1.html

以上希望对大家学习起到积极的作用,一个好的程序员势必要学会github的使用。假设本文大家认为还不错,就告诉你身边的朋友吧,假设认为看得过去那么就分享一下吧,假设认为有待改动,那么请指出不足而且给打赏几个e币。最后感谢百度的无私支持,以及某个人的博客(说真的真的忘了他的地址是啥了),Hello Github。

转载于:https://www.cnblogs.com/mengfanrong/p/3796294.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客 统计好元组

文章目录1. 题目2. 解题1. 题目 链接&#xff1a;https://ac.nowcoder.com/acm/contest/10325/A 来源&#xff1a;牛客网 现在给定一个数组arr&#xff0c;和a,b两个数字&#xff0c;你要做的就是找到&#xff08;i&#xff0c;j&#xff0c;k&#xff09;。且满足 1. 0 <…

从内置函数看 Python 的设计思想:len(x) 是否击败 x.len(),

内置函数是 Python 的一大特色&#xff0c;用极简的语法实现很多常用的操作。 它们预先定义在内置命名空间中&#xff0c;开箱即用&#xff0c;所见即所得。Python 被公认是一种新手友好型的语言&#xff0c;这种说法能够成立&#xff0c;内置函数在其中起到了极关键的作用。 …

解密Redis持久化

本文内容来源于 Redis 作者博文&#xff0c;Redis 作者说&#xff0c;他看到的所有针对 Redis 的讨论中&#xff0c;对 Redis持久化的误解是最大的&#xff0c;于是他写了一篇长文来对 Redis 的持久化进行了系统性的论述。文章非常长&#xff0c;也很值得一看&#xff0c;NoSQL…

牛客 共鸣问题(思维难题)

文章目录1. 题目2. 解题1. 题目 链接&#xff1a;https://ac.nowcoder.com/acm/contest/10325/B 来源&#xff1a;牛客网 现在有n个音符和m对共鸣关系&#xff0c;编号为1~n&#xff0c; 每个音符自己有一个奏响时的优美程度&#xff0c; 共鸣关系(x,y,z)表示音符x和y同时奏响…

GitHub标星2.6万!Python算法新手入门大全

今天推荐一个Python学习的干货。 几个印度小哥&#xff0c;在GitHub上建了一个各种Python算法的新手入门大全&#xff0c;现在标星已经超过2.6万。这个项目主要包括两部分内容&#xff1a;一是各种算法的基本原理讲解&#xff0c;二是各种算法的代码实现。 传送门在此&#x…

Notepad++的json 格式化

一、在线安装&#xff1a; 1. 打开nodepad 2. 找到JSON Viewer 点击右上角"安装", 会有提示框安装重启notepad, 点击ok 3. 自动重启后, 就可以看到插件这栏有JSON Viewer了, 至于用哪个选项可以格式化, 就来动手试试吧~~~ 二、下载复制到指定位置 1、下载对应版本的…

Pytorch 张量tensor

文章目录1. tensor 张量2. 运算3. 切片、形状size()、改变形状view()4. item() 只能读取一个元素参考 http://pytorch123.com/1. tensor 张量 empty 不初始化 import torch x torch.empty(5,3) # 不初始化 print(x)tensor([[1.0010e-38, 4.2246e-39, 1.0286e-38],[1.0653e-3…

移动硬盘无法弹出的问题

1.运行任务资源管理器 2.结束explorer.exe 3.新建任务explorer.exe 4.弹出移动硬盘 转载于:https://www.cnblogs.com/wbbice/p/3800907.html

python中的有序字典及其使用方法

有序字典和通常字典类似&#xff0c;只是它可以记录元素插入其中的顺序&#xff0c;而一般字典是会以任意的顺序迭代的。 1、普通字典&#xff1a; d1{} d1[a]A d1[b]B d1[c]C d1[d]D #此时的d1 {a:A,b:B,c:C,d:D} for k,v in d1.items():print k,v 输出结果为&#xff1a;…

Pytorch 自动微分

参考 http://pytorch123.com/ Tensor.requires_grad True 记录对Tensor的所有操作&#xff0c;后序.backward() 自动计算所有梯度到 .grad 属性 import torch x torch.ones(2,2, requires_gradTrue) # 默认是False print(x)tensor([[1., 1.],[1., 1.]], requires_gradTrue)…

写了 10 年代码之后,我学到的 7 个绝对真理

明年就是我的开发者生涯的第十个年头。整整十年&#xff01;我有三分之二的时间都用在了 Web 开发上。在孩童时代&#xff0c;当其他小孩还在学习乐器或芭蕾舞的时候&#xff0c;我在自己的卧室里用代码编织了一个神奇的世界。为了给这十年来一个总结&#xff0c;我想分享一下我…

1502: [NOI2005]月下柠檬树 - BZOJ

Description Input文件的第1行包含一个整数n和一个实数alpha&#xff0c;表示柠檬树的层数和月亮的光线与地面夹角(单位为弧度)。第2行包含n1个实数h0,h1,h2,…,hn&#xff0c;表示树离地的高度和每层的高度。第3行包含n个实数r1,r2,…,rn&#xff0c;表示柠檬树每层下底面的圆…

Pytorch 神经网络训练过程

文章目录1. 定义模型1.1 绘制模型1.2 模型参数2. 前向传播3. 反向传播4. 计算损失5. 更新参数6. 完整简洁代码参考 http://pytorch123.com/ 1. 定义模型 import torch import torch.nn as nn import torch.nn.functional as Fclass Net_model(nn.Module):def __init__(self):…

python3之批量修改文件名称

import osdef folder_rename_add():#1. 获取要重命名的文件夹 名字 &#xff08;事先存在的&#xff09;folder_name input("请输入要重命名的文件夹:")#2. 获取制定的文件夹中的所有 文件名字file_names os.listdir(folder_name)#3. 重命名for name in file_name…

开发人员:月薪过万与年薪百万之间的差距

有一句话在开发人员圈子广为流传&#xff1a;“初级开发人员的标志就是需要在中级和高级开发人员的指导下完成工作。”所以&#xff0c;我们不要苛刻初级开发人员写的代码对错严谨&#xff0c;毕竟每个开发人员都有这样的一个过程。据译者观察&#xff0c;初级开发人员往往认为…

天池 在线编程 所有子数组之和(排列组合)

文章目录1. 题目2. 解题2.1 暴力解2.1 O(n) 解1. 题目 给定一个数组nums, 你需要返回这个数组所有子数组之和。 如果nums [2, 4, 1], 数组所有的子集是 {[2], [4], [1], [2, 4], [4, 1], [2, 4, 1]} 保证返回的结果是int的类型 len(nums) < 50 示例 示例1: 输入: nums …

深入研究Python 世界的规则,我的薪资直接翻倍

前言 编程&#xff0c;其实和玩电子游戏有一些相似之处。你在玩不同游戏前&#xff0c;需要先学习每个游戏的不同规则&#xff0c;只有熟悉和灵活运用游戏规则&#xff0c;才更有可能在游戏中获胜。 而编程也是一样&#xff0c;不同编程语言同样有着不一样的“规则”。大到是…

MyEclipse中代码提醒功能

一&#xff1a;最近仔细研究了下spring mvc中的代码&#xff0c;自己在配置文件哪里来时出现问题&#xff0c;没有提醒&#xff0c;只好自己搜了下有关的信息。如下 window--->preferences---->java---->Editor------>Content Assist如下图&#xff1a; 讲画圈部分…

天池 在线编程 木材加工(二分查找)

文章目录1. 题目2. 解题1. 题目 有一些原木&#xff0c;现在想把这些木头切割成一些长度相同的小段木头&#xff0c;需要得到的小段的数目至少为 k。 当然&#xff0c;我们希望得到的小段越长越好&#xff0c;你需要计算能够得到的小段木头的最大长度。 木头长度的单位是厘米…

利用numpy删除DataFrame某一行/列、多行内容

一、用法&#xff1a; DataFrame.drop(labelsNone,axis0, indexNone, columnsNone, inplaceFalse) 参数说明&#xff1a; labels&#xff1a;就是要删除的行列的名字&#xff0c;用列表给定axis&#xff1a; 默认为0&#xff0c;指删除行&#xff0c;因此删除columns时要指定…