GitHub简介与使用

6 篇文章 0 订阅
GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
在GitHub进行分支就像在Myspace(或Facebook…)进行交友一样,在社会关系图的节点中不断的连线。


GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私
  
有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。


GitHub主要用Rails实现。我们在进行的post-commit集成小应用完全使用Merb编写。我们使用了Python的Pygments来做格式高亮显示,另外,还用了Ara T. Howard's Bj加上一些Ruby脚本来做我们的排队系统。当然,我们用了Ruby Grit库来和Git进行交互。
GitHub已经有了一组引人注目的特性,除了命令式的库浏览器和一个项目Wik,GitHub甚至还包括了一个GitHub gem,以使通过shell方式使用GitHub更为方便。更多的未来特性已经在计划中︰


Github就像一个免费的图书馆或一个廉价的托管服务,开发者可以在这里找到他们需要的几乎所有功能。这意味着重复使用代码,而不是大量编写代码。
  十年前,开发人员可以使用免费的操作系统和一些简单的数据库。五年前,他们可以用上“非常不错的免费数据库”和“相当好的”免费web框架。


GitHub库是可搜索的,它定期根据人气给项目和库排名。GitHub给开发者提供一个地方,让它们可以集中管理代码本身和相关材料。
  你不仅在源代码方面,而且也在文档以及任何跟项目有关的东西上跟社区合作,这是一个巨大的加分项,我们可以与用户共享文档,可以打开它、改变它,并把它捐献出去。这是一个很大的优势。
  市面上也有Bitbucket.org和Google Code这样的代码库,但很多开发者都认为GitHub更好。
  随着更多的开发者希望迅速为多种移动设备创建优质的产品,这种管理、跟踪代码并重复使用它们的敏捷开发模式将继续扮演重要角色。


简单来说,版本控制就是能够在你每一次对代码进行修改时,帮你保存一个版本。这对于团队开发来说,是非常重要的。


Git 使用教程

1:下载Git  Git for Windows

2:点击安装,依次默认下一步

 

3:安装完成

4:设置SSH建立计算机与Github的链接

4.1 点击开始菜单找到Git Bash,并点击:

 

4.2 运行命令 cd ~/.ssh 检查自己的电脑上是否存在ssh keys

如果显示No such file or directory 则需要去创建一个新的ssh keys

4.3 创建新的ssh keys

运行命令:$ ssh-keygen -t rsa -C "your_email@youremail.com"点击回车

点击回车

输入你的passphrase(密码),并重新输入确认

注:在Enter passphrase 的时候,输入的密码是看不到的,其实已经输入了,输完后点击回车就可以了

这样一个新的keys就创建完成了,上面代码显示,密匙位置放在了C:/Users/用户名/.ssh/文件夹中。(.ssh文件夹可能是隐藏的,需要查看隐藏文件

4.4 将你新生成的ssh keys 添加到github中

在 GitHub 网站点击“Account Settings” > 点击 “SSH Public Keys”> 点击 “Add another public key”

在本机找到你创建的密匙文件id_rsa.pub,使用记事本打开,复制里面所有的内容,粘贴到网站key的文本框中,点击Add Key 保存

5:测试一下我们的设置是否正确

输入命令:$ ssh -T git@github.com

输入yes

我本机显示连接关闭,然后我继续执行上诉命令,提示输入passphrase(密码),输入前面自己设置的passphrase。回车登录成功

 

6:在本地设置Git信息

6.1设置用户名和邮箱

$ git config --global user.name"Firstname Lastname"

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

此处用户名为自己的实际姓名(自定义的),而非登录用户名

 

 

 

 

Git 创建一个库Create a Repository

  官网注册

1:点击 New repository

2:输入库的相关信息,然后点击Create Repository

3:上传一个文件

3.1首先在本地创建一个目录(这个目录名需要和上一步创建的项目名相同):依次执行下列命令行

mkdir Helloworld
cd Helloworld
git init
touch README
git add README
git commit -m 'first commit'

3.2:打开本机的c:/User/用户名/Helloworld文件夹中的readme文件(使用记事本)编辑内容,保存。

3.3:将文件提交到github中的库中,执行下列命令行

git remote add origin git@github.com:github用户名/Helloworld.git
git push -u origin master

 

4:这样我们就已经把一个文件上传到了githb代码库中了!



问题:

当要push代码到git时,出现提示:

error:failed to push some refs to ...

Dealing with “non-fast-forward” errors
From time to time you may encounter this error while pushing:

  1. $ git push origin master  
  2. To ../remote/  
  3.  ! [rejected]        master -> master (non-fast forward)  
  4. error: failed to push some refs to '../remote/'  
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'non-fast forward'
section of 'git push --help' for details.
This error can be a bit overwhelming at first, do not fear. Simply put, git cannot make the change on the remote without losing commits, so it refuses the push. Usually this is caused by another user pushing to the same branch. You can remedy this by fetching and merging the remote branch, or using pull to perform both at once.
In other cases this error is a result of destructive changes made locally by using commands like git commit --amend or git rebase. While you can override the remote by adding --force to the push command, you should only do so if you are absolutely certain this is what you want to do. Force-pushes can cause issues for other users that have fetched the remote branch, and is considered bad practice. When in doubt, don’t force-push.


问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:

1,强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容

git push -f

2,先把git的东西fetch到你本地然后merge后再push

$ git fetch

$ git merge

这2句命令等价于
  1. $ git pull  

可是,这时候又出现了如下的问题:


上面出现的 [branch "master"]是需要明确(.git/config)如下的内容
[branch "master"]
    remote = origin

    merge = refs/heads/master

这等于告诉git2件事:

1,当你处于master branch, 默认的remote就是origin。

2,当你在master branch上使用git pull时,没有指定remote和branch,那么git就会采用默认的remote(也就是origin)来merge在master branch上所有的改变

如果不想或者不会编辑config文件的话,可以在bush上输入如下命令行:

  1. $ git config branch.master.remote origin  
  2. $ git config branch.master.merge refs/heads/master  

之后再重新git pull下。最后git push你的代码吧



图形工具下的操作:

1.首先,把Git工具安装到我们电脑上

Git工具官网:http://git-scm.com (墙内访问不了)

Windows平台下的Git工具:http://code.google.com/p/msysgit/

下载Git

下载mygit

下载完后,打开文件进行安装

安装Git

安装Git

安装Git

安装Git

2.设置SSH,GitHub可以使用SSH进行传输

首先打开终端

Git Bash

输入命令,打开ssh文件夹

cd ~/.ssh

生成SSH的公钥和私钥

ssh-keygen -t rsa -C "邮箱地址"

SSH

然后输入私钥密码

SSH

往GitHub网站添加SSH的公钥

在GitHub的accout setting里,点击Add SSH key

SSH

使用文本编辑器打开.ssh文件夹内的id_rsa.pub文件,将其复制粘贴到GitHub,然后保存

SSH


3.在GitHub建立一个项目的代码仓库

repository

4.在本机新建一个初始化git,在项目文件夹右键,选择init here

init

5.添加远程资源

add remote

从GitHub读取项目的SSH路径

add remote

添加远程资源

add remote

6.从远程下载代码

从GitHub同步代码到Git仓库

sync

将Git仓库代码同步合并至本地项目

sync

7.将代码上传至GitHub

将所有文件加入到Git版本控制

upload

提交代码到Git仓库

upload

upload

将Git仓库提交至GitHub

upload

upload


至此,代码就同步至GitHub上了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值