Chinaunix首页 | 论坛 | 博客
  • 博客访问: 859855
  • 博文数量: 188
  • 博客积分: 4433
  • 博客等级: 上校
  • 技术积分: 1905
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-14 07:14
个人简介

linux

文章分类

全部博文(188)

文章存档

2016年(6)

2015年(22)

2014年(18)

2013年(5)

2012年(125)

2011年(10)

2010年(2)

分类: Python/Ruby

2012-02-23 11:34:40

github命令
git community book
github常用指令
2012-02-04 19:36

总结一下ubuntu下github常用的命令,设置部分跳过,假设repository的名字叫hello-world:

 

1.创建一个新的repository:

先在github上创建并写好相关名字,描述。

$cd ~/hello-world        //到hello-world目录

$git init                     //初始化

$git add .                   //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件)

$git commit               //提交到本地仓库,然后会填写更新日志( -m “更新日志”也可)

$git remote add origin git@github.com:WadeLeng/hello-world.git        //增加到remote

$git push origin master    //push到github上

2.更新项目(新加了文件):

$cd ~/hello-world

$git add .                  //这样可以自动判断新加了哪些文件,或者手动加入文件名字

$git commit              //提交到本地仓库

$git push origin master    //不是新创建的,不用再add 到remote上了

3.更新项目(没新加文件,只有删除或者修改文件):

$cd ~/hello-world

$git commit -a          //记录删除或修改了哪些文件

$git push origin master  //提交到github

4.忽略一些文件,比如*.o等:

$cd ~/hello-world

$vim .gitignore     //把文件类型加入到.gitignore中,保存

然后就可以git add . 能自动过滤这种文件

如果某个文件已经被加入了,就得git rm --cached conf/env.conf,然后再

git add .

git commit -m "comment"

git push 

才行

5.clone代码到本地:

$git clone git@github.com:WadeLeng/hello-world.git

假如本地已经存在了代码,而仓库里有更新,把更改的合并到本地的项目:

$git fetch origin    //获取远程更新

$git merge origin/master //把更新的内容合并到本地分支

这两部可以用git pull来代替

pull = fetch+merge

6.撤销

$git reset

7.删除

$git rm  * // 不是用rm

//------------------------------常见错误-----------------------------------

1.$ git remote add origin git@github.com:WadeLeng/hello-world.git

 错误提示:fatal: remote origin already exists.

 解决办法:$ git remote rm origin

 然后在执行:$ git remote add origin git@github.com:WadeLeng/hello-world.git 就不会报错误了

 2. $ git push origin master

 错误提示:error:failed to push som refs to

 解决办法:$ git pull origin master //先把远程服务器github上面的文件拉先来,再push 上去。

//------------------------------------------------------------------------------


高级技巧:

1.git diff

git diff得到的是从Working DIrectory到Index的变化
git diff –cached得到的是从HEAD到Index的变化
git diff HEAD得到的是从HEAD到Working DIrectory的变化

git diff 比较两次不同commit之间区别,据测试,commit id 最少为前4位

2.查看所有commit列表

git log

3.git reset

git reset --hard 重置index和working directory,自上次commit以来所有变化全都丢弃,并把HEAD指向

git reset --soft index和working directory不改变,HEAD指向,所有改变都会显示在 git status 中的"Changes to be commited"

git reset --mixed 仅reset index.这是默认模式,不动working directory,显示在 git status中的“Unstaged changes after reset"

4.git revert

用于回滚commit

git revert HEAD~3:丢弃最近的三个commit,把状态恢复到最近的第四个commit,并且提交一个新的commit来记录这次改变。 



一个中文git手册:



一、下载并编译安装git
wget
(上面的下载地址可能已经失效,请使用 )
tar -xlvf git-1.7.5.4.tar.bz2
cd git-1.7.5.4
./configure --prefix=/usr/local/ (使用--prefix参数指定Git的安装路径)
make
make install
 
使用下面的命令查看版本号确认git是否安装成功
git --version
 
If you want to check out below open source software
You can run command
$ git clone git://github.com/puppetlabs/marionette-collective.git
$ cd marionette-collective
$ git checkout 1.3.0
安装git服务器
 
接着follow github官方网站上instructions

1.create repository
2.会跳出来创建readme的project的页面,照着做就好,这里建了个Ruby on Rails的project
mkdir Ruby-on-Rails
cd Ruby-on-Rails/
git init
touch README
git add README   #添加文件
git commit -m 'first commit'     #commit
git remote add origin git@github.com:username/Ruby-on-Rails.git  #定义远程服务器为origin
git push -u origin master    #push到server端


 
以下步骤供参考
1. GIT

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

更多的细节参见

Git使用指南

2. GitHub

GitHub是一个托管Git (开源或闭源)项目的网站,闭源收费,最低7$/月起,免费的300G空间。价格表如下:



使用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网站上就可以看见了,

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):
阅读(3137) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~