sudo apt-get install git-core openssh-server openssh-client
$ sudo apt-get install git-core git-gui git-doc
如果需要在push到网上
一、github帐号的申请
如果只是需要将github上感兴趣的代码拷贝到本地,自己进行修改使用,而不打算共享发布的话,其实不申请帐号也没有关系,只需要git clone 代码到本地就可以了。本文对这种方法不做讨论,毕竟使用github 就是为了开源的目的。
首先去 github.com上注册一个帐号,具体的注册流程就不赘述了。
二、在本地建立一个文件夹,然后做一些全局变量的初始化
git config --global user.name ="用户名或者用户ID"
git config --global user.email ="邮箱"
这两个选项会在以后的使用过程中自动添加到代码中。
三、创建验证用的公钥
这个是比较复杂和困扰大多数人的地方,因为 git是通过 ssh的方式访问资源库的,所以需要在本地创建验证用的文件。
使用命令:ssh-keygen -C 'youemail [email protected]' -t rsa
会在用户目录 ~/.ssh/下建立相应的密钥文件
可以使用 ssh [email protected] 命令来测试链接是否畅通
四、上传公钥
在 github.com 的界面中选择右上角的 AccountSettings,然后选择 SSHPublic Keys ,选择新加。
Title 可以随便命名,Key的内容拷贝自 ~/.ssh/id_rsa.pub中的内容,完成后,可以再使用 ssh-v [email protected] 进行测试。看到下面的信息表示验证成功。
进行到这里,我们也可以利用github来管理我们的项目和参与开源工作了,大体上使用git分为三种方式。
管理自己的项目
这种情况是自己在本地有一些代码,需要利用github 来管理自己的项目,可以按照下面的步骤进行。
1、建立仓库
在需要建立项目的文件夹中,使用 gitinit 进行仓库的建立。完成后,可以看到文件家中多了一个.git 隐藏目录。
2、添加文件
使用 git add . 来进行初始文件的添加。这里. 表示将文件夹下所有的文件都添加进去,我们也可以指定文件进行添加。
3、提交文件
使用 git -m commit -m'comment' 提交,可以将编辑的内容进行提交。
通过 git show 可以看到项目的一些状态。
这是代码已经在本地管理了,但是本地管理完全体现不出git的优势。
利用github托管自己的项目
1、如果需要将自己的项目托管在github.com上,首先需要创建项目。在Dashboard 中选择 CreateNew Repository,填入相关信息后,项目就创建成功了。
2、之后,会有一个如何上传的提示,如下图已经很详细了。
Fork别人的项目
前面提到过,如果只是下载使用别人的代码,通过git clone就可以了,当然clone的前提是项目必须是public的,私有的项目是没办法的。如果需要参与,可以通过fork,然后合并的方式。
1、首先需要去自己感兴趣的项目中进行Fork,fork出自己的一份分支来。fork之后,一般可以看到一个ssh访问的地址。例如:[email protected]:cocowool/userguide.git
2、复制代码
使用 git [email protected]:cocowool/userguide.git userguide 可以将代码复制到本地的userguide 文件夹中
3、进行自己的修改,完成后请求原作者合并
2.修改用户信息
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
3.查看配置信息
$ git config –list
4.相关命令
git init
git add .
git commit
git diff -cached 要看已经暂存起来的文件和上次提交时的快照之间的差异
git diff 此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有
暂存起来的变化内容。
git status
git log -p
$ git commit –amend 想要撤消刚才的提交操作,可以使用 --amend 选项重新提交
git reset HEAD benchmarks.rb 取消暂存 benchmarks.rb 文件
$ git checkout – benchmarks.rb 抛弃文件修改的命令
$ git remote 要查看当前配置有哪些远程仓库,可以用 git remote 命令,它会列出每个远程库的简短名字。
$ git remote add pb git://github.com/paulboone/ticgit.git 添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用
$ git remote -v 列出多个远程仓库
$ git fetch [remote-name] 从远程仓库抓取数据到本地
git pull 从原始克隆的远端仓库中抓取数据后,合并到工作目录中当前分支
git push [remote-name] [branch-name] 将本地仓库中的数据推送到远程仓库
git remote show [remote-name] 查看某个远程仓库的详细信息
$ git tag 列显已有的标签
$ git push origin –tags 如果要一次推送所有(本地新增的)标签上去,可以使用 --tags 选项:
git branch -d experimental 如果使用大写的-D 的话,则表示“不论如何都删除分支”,-D 当然使用在“分支被证明失败”的情况下喽。
5.上面的命令有点乱,以下是某位网友整理的(《看日记学 git 》系列):
(1)获得帮助可以使用类似 man git-****的命令格式:
想获得关于 commit 命令的帮助,则 man git-commit
想获得关于 pull 命令的帮助,则 man git-pull
想获得关于 merge 命令的帮助,则 man git-merge
以此类推
(2)任何人在使用 git 之前,都要提交简单的个人信息,以便 git 区分不同的提交者身份。
#git config –global user.name “your name”
#git config –global user.email [email protected]
(3)想新开启一个项目,应该先建立一个目录,例如名为 myproject,然后所有的项目开发内容都在此目录下进行。
#cd myproject
#git init
#git add .
#git commit //这个步骤会自动进入编辑状态,要求提交者输入有关本次提交的“开发信息”
至此,一个新项目就诞生了,第一个开发信息(开发日志)也随之诞生。
(4)如果改进了项目源代码,并且到了开发者认为“应该再次记录开发信息”的时候,则提交“工作成果”。
#git commit -a
//这是一个偷懒的命令,相当于 git add .; git commit;
但是,此处有一点应该注意,那就是 git commit -a 无法把新增文件或文件夹加入进来,所以,如果你新增了文件或文
件夹,那么就要老老实实的先 git add .,再 git commit 喽。[此处非常感谢 freeren 的提醒]
(5)想检查到目前为止对源码都做了哪些修改(相对于本次工作刚开始之时):
#git diff //这个命令只在 git add 之前使用有效。如果已经 add 了,那么此命令输出为空
#git diff –cached //这个命令在 git add 之后在 git commit 之前有效。
#git status //这个命令在 git commit 之前有效,表示都有哪些文件发生了改动
(6)想查看自项目开启到现在的所有开发日志
#git log
#git log -p //会输出非常详细的日志内容,包括了每次都做了哪些源码的修改
(7)开启一个试验分支(experimental),如果分支开发成功则合并到主分支(master),否则放弃该试验分支。
#git branch experimental //创建一个试验分支,名称叫 experimental
#git branch //显示当前都有哪些分支,其中标注*为当前所在分支
#git checkout experimental //转移到 experimental 分支
(省略数小时在此分支上的开发过程)...
如果分支开发成功:
#git commit -a //在 experimental 分支改进完代码之后用 commit 在此分支中进行提交
#git checkout master //转移回 master 分支