您的位置:首页 > 编程语言

Mac使用git/github小结

2013-08-29 10:23 477 查看

介绍

当我们的项目需要多人协作的时候,有一个公共的代码文档仓库就会很方便。由于网上最广泛使用的服务还是github.com,尽管自己最熟悉的是SVN,但还是为了能用上更好的服务而选择了github。

Github上的帮助页面有个Bootcamp的指引,实际上Windows和Mac系统都基本上可以通过github所提供的客户端进行便捷的管理,只需要点击Download Github for Mac/Windows下载安装就可以了。(注:后来发现github的客户端只支持最新版的OSX,若10.7以前的可以选用其他/更专业的git客户端,比如说SourceTree

而Linux系统将会稍麻烦一点,需要按照指引一步一步做。Github上手步骤分成四步:

1. Set Up Git

2. Create a Repo

3. Fork A Repo

4. Be Social

第一步会告诉你如何通过git的命令行设置你的名字、帐号和SSH密钥,生成密钥之后还需要上传到自己的帐号设置里面,之后才可以进行其他操作。

第二步是要如何创建一个repository,一般会包含一个最基本的README文件,因为空目录不会上传到repository上。

第三步就是如果你希望对其他repository进行分支的更改,这适用在没有修改该repository的权限,或者不希望将自己的代码跟别人的repository混在一起的时候,就可以通过分支到自己的帐号上,用自己的repository进行修改,同时通过upstream来同步原始repository和自己的repository的代码。

第四步介绍了如何在github上与其他用户的交流。在Linux下也有其他图形客户端,比如说RabbitVCS就挺好的,能够同时支持SVN, Git和Mercurial,使用的是windows下的Toitoise系列的风格。

但在linux下有一个地方要注意的,如果是github的private repository(私有仓库),只用git clone命令是无法拷贝到本地的(用其他客户端也不行),而需要用以下的命令行:
$ git clone git@github.com:username/projectname.git

经过前面几步之后,就已经可以用git来存放自己的代码了。后面还需要学习一下Git的版本控制理念,如怎样提交代码,怎样做分支的管理和版本控制,这要结合到团队成员之间如何配合管理提交代码。


 

Git概念简述

———————

Github是一个提供了Git代码版本管理服务的服务器,使用版本控制和代码托管有什么好处呢?
我们可以通过github的网站随时随地浏览,我们的代码和文档资料(如:arduino-exercises)。
我们可以跟踪所有提交到服务器的更改(也就是如果你做了坏事都会有记录 

 ,如:arduino-exercises的history
我们可以对现有的工作资料进行备份。如果碰巧你的硬盘坏了或者电脑丢了,起码网站上有一份备份。
我们可以持续地对自己的工作做更改。Git支持我们对现有的内容创建分支,保存快照,合并修改等,让我们可以不断地改进作品而不影响原有的版本。

以下是Git对文件管理流程的简介:





1. Checkout。第一次使用需要从远程服务器fetch并checkout HEAD来创建本地的工作目录,之后我们便可以在工作目录里任意地添加/删除/修改文件,然后提交到本地的仓库。

2. Add to Index。对于新添加的文件,我们要把它加到索引(Add to Index)里面,文件的修改才会进入Git的跟踪范围。

3. Commit。对于已添加索引的文件, 我们只需要在要保存更改的时候,做一个“提交到本地仓库”(Commit)的操作。那么该文件的更改便在本地有历史可寻。

4. Push/Pull。同步本地仓库(Local Repository)和远程仓库(Remote Repository)的记录。这里用的动词很形象,Push就是把本地仓库的记录推送到服务器上,而Pull就是把服务器的记录拉到本地的仓库。

这里稍微解释一下,由于Git是一个DVCS(Distributed Version Control System,分布式版本控制系统),不同于传统的CVS/SVN版本系统那样必须由一个中央服务器来管理所有的版本记录,它实际上每一个仓库都可独立运作,因此而称为分布式(Distributed)。Git Repos既可以是一个服务器的仓库,也可以是一个本地的文件仓库,可以存在与不同的文件夹里或别人的电脑上,它可以被无限制地fork/clone产生分支,并记下来它们的上游(upstream)是源自哪一个分支,这样当拥有相同upstream的仓库之间,就可以共享版本信息以进行版本合并操作。

5. Merge(只在有冲突的时候)。有时候在我们想Push更新到服务器的时候,发现服务器上的版本已经有别人更新过了,即有新的其他人的Push记录没有下载到本地,这时需要我们先把别人的更改下载到本地,以确保自己是基于最新版提交的更改,才可以把本地的记录Push上去。如果别人修改的部分跟自己的部分没有重合,则应该可以自动地merge。

一种简单的merge方法如Github Client是先对自己的版本拷一个备份到别的目录,然后Discard Local Changes(即取消本地的更改,或称Revert),然后把Remote的changes更新到本地,然后再在最新版的基础上把自己的changes写上去。

另一种办法是在SourceTree里提供更高级的处理矛盾的方式,就是你直接修改本地的文件为想要的最新状态,然后把其标为已经Resolved(右键点击文件->Resolve Conflicts->Mark as Resolved),再提交的时候就会认为这个conflict已经被merged了,可以成功commit。

如果在使用过程之中遇到问题,可先查看所用的Git客户端的文档。之后如果有需要的话,我再讲解一下如何做tag/branch相关的操作,这就属于进阶的内容了。

git 版本控制系统

相比CVS\SVN优势:

- 支持离线开发,离线Repository

- 强大的分支功能,适合多个独立开发者协作

- 速度快

2. github是一个git项目托管网站

注册地址:https://github.com/signup/free

二 安装

1.安装Git

Git 在 Mac OS X 中也有好几种安装方法。最为简单的方式是安装 .dmg 格式的安装包。

git-1.7.7-intel-universal-snow-leopard.dmg

点击该文件就直接挂载到 Finder 中,并打开,

其中带有一个正在解包图标的文件(扩展名为 .pkg )是
Git 的安装程序,另外的两个脚本程序,一个用于应用的卸载(uninstall.sh ),另外一个带有长长文件名的脚本可以在
Git 安装后执行的,为非终端应用注册 Git 的安装路径,因为 Git 部署在标准的系统路径之外 /usr/local/git/bin 。

点击扩展名为 .pkg 的安装程序,开始
Git 的安装,根据提示按步骤完成安装,

安装完毕,git 会被安装到 /usr/local/git/bin/ 目录下。重启终端程序,才能让 /etc/paths.d/git 文件为
PATH 环境变量中添加的新路径注册生效。然后就可以在终端中直接运行 git 命令了。


2.创建GitHub账号(https://github.com/

注册GitHub账号,只要点击导航条中的“Pricing and Signup”,或者点击首页中那个大大的“Plans,Pricing and Signup”按钮,即进入收费方案介绍及注册页面。

收费?不必担心,开源软件托管是GitHub的基石,对于开源项目的版本库(即非私有版本库)的托管,GitHub是免费的。在收费方案及注册页面中,最上面的就是针对于开源的免费托管方案,如图2-1所示。





图2-1:针对开源项目(公开版本库)的免费方案

至于本页其他付费方案,将在后面的章节介绍。点击免费方案右侧的“Create a free account”按钮,就进入到注册页面,如图2-2所示。





图2-2:账号注册

GitHub的注册页面非常简洁,只有登录ID,邮件地址和口令需要输入。要注意的是每个邮件地址只能注册一次。注册完毕即以新注册的账号自动登录,图2-3是以新注册的gotgithub用户登录后的首页。在首页右上方的导航条,可以看到当前登录用户的名称,如图2-3中显示为gotgithub。在登录用户名称前显示用户照片,因为尚未设置所以显示为缺省图片——GitHub吉祥物Octocat的剪影。点击导航条中的“Account
Settings”,对账号进行进一步设置。





图2-3:登录后的GitHub首页

图2-4对用户公开身份信息进行设置,所有内容均为可选项,如果填写将显示在个人页面中,并能被所有人访问。注意修改用户头像需要访问第三方头像设置网站:gravatar.com。Gravatar网站提供的头像服务是一个通用服务,可为大部分Web应用所使用。

3.配置git和github

1. 打开终端,执行下面操作

$ cd ~/.ssh    //检查计算机ssh密钥


如果没有提示:No
such file or directory 说明你不是第一次使用git,执行下面的操作,清理原有ssh密钥
$ ls
config id_rsa id_rsa.pub known_hosts
$ mkdir key_backup
$ cp id_rsa* key_backup
$ rm id_rsa*


获得密钥:
ssh-keygen -t rsa -C "defnngj@gmail.com"  //填写email地址,然后一直“回车”ok


打开本地..\.ssh\id_rsa.pub文件。此文件里面内容为刚才生成人密钥。
2
.
登陆github系统。点击右上角的
Account
Settings --->SSH Public keys ---> add another public keys
把你本地生成的密钥复制到里面(key文本框中), 点击
add key 就ok了


3
.
接着打开git ,测试连接是否成功
$ ssh -T git@github.com


也许你会看到如下显示:
The authenticity of host 'github.com (207.97.227.239)' can't be established.RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.Are you sure you want to continue connecting (yes/no)?


不用紧张,输入yes,回车.

如果提示:Hi
defnngj You've successfully authenticated, but GitHub does not provide shell access. 说明你连接成功了
4
. 
设置用户信息:
4.1
$ git config --global user.name "defnngj"   //给自己起个用户名
$ git config --globla user.email  "defnngj@gmail.com"   //填写自己的邮箱


4.2
在github中找到
Account Settings--->Account Admin ,找到一下信息:
Your
API token is e
97279836
f
0
d
415
a
3954
c
1193
dba
522
f
---keep it secret! Changing your password will
generate
a new token
$ git config --global github.user defnngj      //github 上的用户名
$ git config --globla github.token e97279836f0d415a3954c1193dba522f


view
sourceprint?

 
 
使用github mac tool管理项目

添加repo

可以通过将文件夹拖入工具来添加一个repo。如果原目录是git repo,工具会自动倒入历史并和你的Github账户连接。如果不是repo,会生成一个新的。

另一种方式是从GitHub网站上clone。当你安装了mac工具后,网页上会有个按钮,点击就可以clone。



参考文章:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: