write down,forget

git快速入门

<Category: 小道消息, 资源分享> 查看评论

github

首先到http://.com/申请一个300M的免费空间(足够了),然后按照下面的流程操作,注意SSHkey生成的那步

From http://hi.baidu.com/kissdev/blog/item/944aa2fab2817215a8d311f1.html

1.

相比CVS/SVN,Git 的优势:
- 支持离线开发,离线Repository
- 强大的分支功能,适合多个独立开发者协作
- 速度块

2. GitHub

GitHub是一个托管Git (开源或闭源)项目的网站,闭源收费

使用GitHub步骤:
1、申请GitHub帐户 xxx ,创建名为new-project的新Repository 

2、安装Git客户端(Linux)
#yum install git git-gui

3、 生成密钥对,这样项目可以push到 GitHub上
#ssh-keygen -t rsa -C “xxx@gmail.com”
4、将.ssh/id_rsa.pub拷贝到GitHub网站


5、为了方便,设置ssh不输入口令
# eval ssh-agent
# ssh-add
(输入passphrase)

6、测试是否能联通GitHub
#ssh git@github.com
如果配置正确,显示
ERROR: Hi xxx! You’ve successfully authenticated, but GitHub does not provide shell access
Connection to github.com closed.

7、设置Git全局用户配置
# git config –global user.name “xxx”
# git config –global user.email xxx@gmail.com

8、创建本地新项目工作树
# mkdir new-project
# cd new-project
# git init
# touch README
# git add README
# git commit -m ‘first commit’
定义远程服务器别名origin
#  git remote add origin git@github.com:xxx/new-project.git   
本地和远程合并,本地默认分支为master
# git push origin master  

GitHub网站上就可以看见了, http://github.com/xxx/new-project

9. 更新文件
# vi README
自动commit更改文件
# git commit -a     
更新至远程
# git push origin master

10. 创建和合并分支
#git branch 显示当前分支是master
#git branch new-feature  创建分支
# git checkout new-feature 切换到新分支
# vi page_cache.inc.php
# git add page_cache.inc.php
Commit 到本地GIT
# git commit -a -m “added initial version of page cache”
合并到远程服务器
# git push origin new-feature

如果new-feature分支成熟了,觉得有必要合并进master
#git checkout master
#git merge new-feature
#git branch
#git push 
则master中也合并了new-feature 的代码

再登录到GitHub可以看见”Switch Branches”下的分支选项:



GitHub还有一个很实用的功能,查看开发进程网络图(Network):

进阶使用,多人开发,分支管理

1. .gitIgnore 文件忽略哪些不被Git跟踪的文件

在根目录下生成 .gitignore 文件,
例子1:
# Can ignore specific files
.DS_Store
# Use wildcards as well
*~
*.swp
# Can also ignore all directories and files in a directory.
tmp/**/*

例子2:
# Ignore all dotfiles…
.*
# except for .gitignore
!.gitignore

2. 使用GitHub进行多人协同开发


GitHub上大的项目如Ruby有多个Branch
(0) 克隆GitHub项目
git clone git://github.com/xxx/xxx.git

(1) 分支的创建和合并
# git branch local 
# git checkout local    切换到local

# …  开发local分支

与master分支合并
# git checkout master
# git merge local
# git branch -d local    合并完后删除local

(2) 最佳方式的GitHub多人协作,每个人建立自己分支

假定有项目创建者A (主力开发者和代码合并)和其他开发者B, C , D, E …
创建者A将其他开发者加到项目的Collaborator里 ,如下图所示(项目Admin菜单)



其他开发者B, C , D, E…,配置好Git和GitHub的证书:

# git clone git@github.com: xxx/xxx.git   ( private 链接)
# git pull    从服务器更新
# git log   查看其他成员更新日志

其他开发者建议在开发时建立自己的分支,不要在master上整了
B开发者(当然主力开发者也适用)
# git branch dev-b
# git checkout dev-b
….  开发

将分支push到github
# git push origin dev-b   (如果不通过github,通过自己机器上的路径也可以)

主开发者A
# git pull origin dev-b  即可合并其他开发者的Branch

为了保险起见,主开发者可以在新的Branch中测试B的开发成果,测试稳定后再合并进Master
# git branch newexp
# git checkout newexp
# git pull origin dev-b
… (testing…)
….
# git checkout master
# git merge newexp


3. 建立自己的Git服务器进行多人协同开发

服务器server1: 
# mkdir myproject.git
# cd myproject.git
# git –bare init –shared

开发者A 初始化服务器上项目
# cd myproject
# git push user@server1:myproject.git  master

开发者N可获得初始项目文件
# git clone user@server1:myproject.git
改动
# git commit 
# git pull
# git push

$git fetch http://github.com/elasticsearch/elasticsearch.git

本文来自: git快速入门