【初识Github】
首先让我们大家一起喊一句“Hello Github”。YEAH!就是这样。
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius和Merb在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。同样,eoe.cn客户端的源码也托管在github上。
GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
在GitHub进行分支就像在Myspace(或Facebook…)进行交友一样,在社会关系图的节点中不断的连线。
GitHub 使用 git 分布式版本控制系统,而 git 最初是 Linus Torvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,因此 git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。
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账号,Linux创建SSH密钥:
ssh-keygen
2.将公钥加入到Github账户信息Account Settings,测试验证是否成功。
ssh -T [email protected]
Hi onovps! You've successfully authenticated, but GitHub does not provide shell access.
3.GitHub创建项目。
4.本地配置,新建Git项目并提交到Github。
git config --global user.name 'onovps'
git config --global user.email '[email protected]' #全局联系方式,可选
touch README.md
git init #初始化
git add README.md #添加文件到本地仓库
git commit -m "first commit" #提交并备注
git remote add onovps [email protected]:onovps/test.git #增加一个远程服务器端版本库,名称为onovps
git push -u onovps master #将本地文件提交到Github。
5.复制项目到本地:
git clone git://github.com:onovps/test.git
6.删除GitHub文件:
git rm README.md #本地倒库内删除
git commit -m "rm README.md" #提交到本地
git push onovps master #提交到Github
ubuntu下git服务器的搭建
ubuntu下git服务器的搭建
1首先创建git专用用户 并设置密码
sudo adduser git
passwd git
2 下载gitolite(git用户下)
git clone git://github.com/ossxp-com/gitolite.git
3:还是git用户下
mkdir -p $HOME/bin $HOME/share/gitolite/conf $HOME/share/gitolite/hooks // 建立命令,conf,和hooks目录
cd gitolite/src
gl-system-install $HOME/bin $HOME/share/gitolite/conf $HOME/share/gitolite/hooks
把export PATH=/home/git/bin:$PATH写入到bash.rc里
4:修改gitolite/gl-setup
cd bin
vim gl-setup
把GL_PACKAGE_CONF变量改成上面安装gitolite的配置目录,如:
GL_PACKAGE_CONF=/home/git/bin/gitolite/share/gitolite/conf/ // 否则会打开一个空的~/.gitolite.rc,就不知道该如何往里写配置信息了
5:准备个admin用户
使用 ssh-keygen 生产管理员的公钥密钥对 默认目录在用户根目录下 .ssh/下 (也可以指定目录ssh-keygen -f xxxx)
将公钥 admin.pub copy 进 git 用户下
6:进入git 用户
gl-setup admin.pub (拷贝过来的公钥名字随便起)
会自动打开的.gitolite.rc文件:
修改$GL_PACKAGE_HOOKS,改成gl-system-install指定的hook目录即/home/git/bin/gitolite/share/gitolite/hooks
否则($GL_ADMINDIR(~/.gitolite)/hooks目录中将没有钩子脚本)钩子就不能正确设置, 就失去了gitolite提供给各个仓库的钩子功能
也可以修改gitolite自动建立的仓库根目录的名称$REPO_BASE, 默认是repositories, 也可以改成其他名字,如 repos本文使用默认repositories
但gl-setup执行之后就不要修改该名字
-- .gitolite.rc编辑完成后保存退出,继续自动执行:
出现如下信息就表示成功
create mode 100644 conf/gitolite.conf // 添加授权配置文件,包含了gitolite-admin & testing两个库的授权
create mode 100644 keydir/xxx.pub // 将gl-setup指定的公钥文件添加到keydir/下面
7:然后进入管理员的用户
git clone [email protected]:gitolite.git
8 进入clone 出的 gitolite-admin 目录 会有conf 和 keydir 目录 到此git服务器搭建完成可以添加用户了
git , vim , ls 全局配置
git配置
补充一个 git log 属性
--name-status 显示新增、修改、删除的文件清单。
在用户目录下面会有一个 .gitconfig文件 编辑此文件
[user]
name =
email =
[color]
ui = auto // git 标记颜色
[core]
// git commit 的时候使用 vim 编辑器
editor = vim
[alias]
//这个就是快捷配置啦 分别 代表 git st = git status , git
st = status
ci = commit
co = checkout
br = branch
[mw_shl_code=c,true][user]
name =
email =
[color]
ui = auto
[core]
editor = vim
[alias]
st = status
ci = commit
co = checkout
br = branch[/mw_shl_code]
vim 配置
配置一直都显示行号,和标记颜色等
在用户目录下面有一个 .vimrc 文件, 没有的新建一个
set number
syntax on
set hlsearch
ls配置
配置 ls 和 grep 搜索时候省略 .svn 和 .git文件夹
在用户目录下面 有一个 .bashrc的文件 没有新建一个。
下面2行 分别是过滤 .svn .git的 2个命令冲突不能同时使用(我了解范围内),所以使用的时候自己选择一下
export GREP_OPTIONS="--exclude-dir=\.svn"
#export GREP_OPTIONS="--exclude-dir=\.git"
下面3个就是分别配置的 ls ll la 命令啦 ,在ls ll la 时候有颜色的哦
alias ls='ls --color=auto'
alias ll='ls -l --color=auto'
alias la='ls -al --color=auto'
[mw_shl_code=c,true]export GREP_OPTIONS="--exclude-dir=\.svn"
#export GREP_OPTIONS="--exclude-dir=\.git"
alias ls='ls --color=auto'
alias ll='ls -l --color=auto'
alias la='ls -al --color=auto'
alias grep='grep --color'[/mw_shl_code]
下面一个是配置 grep命令 有颜色
alias grep='grep --color'
注:1. 在此项配置的时候,需要source 一下 你刚才的文件,才能马上生效
2. 如果没有.bash_profile 每次登录都需要source的 所以可以新建(有了就不用新建啦)一个 然后添加如下代码
[mw_shl_code=c,true]# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=.:$PATH:$HOME/bin
BASH_ENV=$HOME/.bashrc
USERNAME="root"
export USERNAME BASH_ENV PATH[/mw_shl_code]
用户目录: cd ./ 这个样子 或者 在别的目录 直接 cd