第三章 Git使用入门

使用Git的目的是减少各种版本的Linux的压缩大小,提供源代码在Linux上进行编译。

在这一个章节中,其实就是关键步骤的操作,虽然Git与我们学习的android没有很大的联系,但是在开发环境中也是必不可少的。通过学习这个章节,学习到了安装,查看,提取Git的方法。下面将详细讲述。

一、安装Git

可能大多数Linux上已经安装了Git,如果没有可以用下面的命令。

Ubuntu10.04版本以下的有-core与原来的区分,

必须的:apt-get install git-core(加以区分)

选用的:apt-get install git-doc gits-svn git-email git-gui gitk

如果是RHEL,Fedora和CentOS不用

必须的:yum install git-core(加以区分)

选用的:yum install git-doc gits-svn git-email git-gui gitk

必须在root权限下

二、查看Git文档

使用man命令可以查看指定命令的帮助文档:man git-checkout

安装完git-doc后会安装git的文本格式和html格式的文档,所有文档在/usr/share/doc/git-doc目录中

以文本形式查看指定文档:git help <sub-command>

查看html格式命令的文档:git help  -w <sub-command>

三、源代码的提交与获取

这个小节主要是使用git从源代码托管服务器获取自己想要得到的代码,理解git下载源命令代码的含义。

1.创建版本库 git init

建工作目录并进入,执行git init,完了以后会出现以下信息,但是用ls不显示,要用如下命令将隐藏的目录显示出来,就是本地版本库。现在就可以查看它的目录和子目录。

mkdir -p /demoelloworld-git      helloworld可随便定义

cd /demo/helloworld-git

git init

Initialized empty Git repository in /demo/helloworld-git/.git/

ls –al

git版本库分为:本地版本库和远程版本库,本地版本库是不联网的,也就是说自己是主人,不需要任何权限。如果有人想要修改服务器中的源代码,则需要用git clone建立一个一模一样的。

2.将文件提交到本地版本库:git commit

进入目录,创建文件,将文件加到本地版本库索引

cd /demo/helloworld-git

echo "helloworld" >helloworld.txt

git add helloworld.txt

git commit -m 'helloworld-master'

显示日志信息:git log

一旦将工作目录中的文件提交到本地数据库中,就再也不怕源代码误删或误改。

3.创建本地分支 git branch

这是基于不同的开发人员从各个角度开始着手。

新建一个分支:git branch new-branch    (分支前面的*代表在哪个工作目录分支下)

删除以前所有的修改:git branch -D new-branch

4.本地分支 git checkout

本地分支是为了隔离主分支不同部分的修改,使用git checkout命令可以在不同的本地分支之间切换。使用下列命令修改helloworld.txt文件的内容并且重新提交到数据库。
使用下列命令将本地分支切换到new-branch上
git checkout new-branch
echo '世界你好' >helloworld.txt
git add helloworld.txt
git commit -m helloworld-new-branch
来回进行两个分支的切换,将会发现helloworld的内容随着分支而改变。

5.在GitHub上创建开源项目

现在http://github.com/signup/free页面注册一个免费用户->Create an account创建一个用户->登录进入首页->create这是界面会告诉用户怎样将源代码上传

6.上传源代码到GitHub  
git push

由于GitHub上传输需要校验SSH,要使用到下面的命令在~/.ssh目录中生成一个密室文件和一个公匙文件,如果存在将备份。

ssh-heygen -t rsa -C
"helloworld注册时的邮箱"

生成的都是纯文本格式,全部copy to 剪切板->进入账户设置页面->左侧选择SSH Public Keys->点击页中间的Add链接,将刚才复制到的内容放到KEY输入框->检测密匙,公匙以及刚才的设置是否正确,将会顺利完成。

ssh -T git@github.com

如果出现Permission denied 则失败,输入以下命令:

ssh -add

git config --global
user.name "Your name"

git config --global
user.email helloworld@126.com

git remote add origin git@github.com:androidguy/helloworld.git

git push -u orgin master

git branch -a

7.从GitHub下载源代码 git clone

git clone
git@github.com:androidguy/hellowrld.git

下载成功后将会多出来helloworld目录

如果只想获得某一个分支最新内容,使用下面命令

git pull
origin master

Android系统移植与驱动开发--第三章 Git使用入门及在学习中有感的更多相关文章

  1. Android系统移植与驱动开发--第四章

    第四章 源代码的下载和编译 一个android内核相当于4G,而一个Linux内个只有几百M,Linux内核相对于android内核来说实在是小巫见大巫.了解android源代码不一定要详细了解,只去 ...

  2. Android系统移植与驱动开发——第七章——LED驱动

    LED驱动的实现原理 编写LED驱动: 测试LED驱动之前需要用USB数据线连接开发板,然后打开电源,成功启动之后,执行build.sh脚本文件编译和安装LED驱动,顺利则会自动连接 如果有多个设备文 ...

  3. Android系统移植与驱动开发——第六章——使用实例来理解Linux驱动开发及心得

    Linux驱动的工作方式就是交互.例如向Linux打印机驱动发送一个打印命令,可以直接使用C语言函数open打开设备文件,在使用C语言函数ioctl向该驱动的设备文件发送打印命令.编写Linux驱动最 ...

  4. Android系统移植与驱动开发——第五章--搭建开发板的测试环境

    开发板上安装嵌入式系统要比手机上简洁很多,有很多扩展的接口,适合对程序进行测试,这里所提及的是S3C6410开发板.它是由三星公司推出的一款低功耗/高性价比的RISC处理器.,其中包含强大的硬件加速器 ...

  5. 第一章 Android系统移植与驱动开发概述

    本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Andro ...

  6. Android系统移植与驱动开发----第一章

    第一章 Android系统移植与驱动开发 Android源代码定制完全属于自己的嵌入式系统,但是支持的设备不多,所以要移植,而在移植的过程中使用的不得不提的是驱动开发. Android系统构架主要包括 ...

  7. 第一章Android系统移植与驱动开发概述--读书笔记

    以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...

  8. Android系统移植与驱动开发

    21世纪,Android发展非常迅速,在市场上占有很大的比例,遥遥领先与iOS,很大程度上是因为任何人都可以利用Android的源代码定制完全属于自己的嵌入式开发系统,而不需要向Google交一分钱. ...

  9. Android深度探索HAL和驱动开发(卷1) 第一章 Android系统移植和驱动开发

    由于Android是基于Linux内核的,因此,Android和其他Linux系统的核心部分差异非常小.然而不同版本的Android使用的Linux内核的版本有细微的差异,所以不同Android驱动可 ...

随机推荐

  1. ng-class css样式

    <style> .error{background-color: red;} .warning{background-color: yellow;} </style> < ...

  2. Cobar介绍及配置

    from:http://code.alibabatech.com/wiki/display/cobar/Home Skip to end of metadata   Page restrictions ...

  3. S5PV210开发板刷机(SD卡uboot、串口+USB-OTG刷机方法)

    一.介绍 九鼎的S5PV210开发板,在出厂前已经默认刷了Android4.0系统.如果需要刷其它的系统或者是由于系统问题无法启动时,就需要对板子刷机. 其实,刷机是对210开发板的一个基础学习,目的 ...

  4. MySQL查询优化:连接查询排序limit

    MySQL查询优化:连接查询排序limit(join.order by.limit语句) 2013-02-27      个评论       收藏    我要投稿   MySQL查询优化:连接查询排序 ...

  5. Java中权限修饰符public、private、protected和default的区别

    1.public 可以修饰类.成员变量和成员函数,没有任何限制,同一个包中,或者不同包中的类都可以自由访问 2.private 可以修饰成员变量和成员函数,只能在本类中使用 3.default (不写 ...

  6. 【译】UI设计基础(UI Design Basics)--iOS应用解析(iOS App Anatomy)(三)

    2.1  iOS应用解析(iOS App Anatomy) 几乎所有的iOS应用都会用到UIKit框架中的组件.了解这些基础组件的名称,角色,功能可以帮你在应用界面设计时做出更好的决策. UIKit提 ...

  7. 【深入浅出jQuery】源码浅析2--使用技巧

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  8. BZOJ 1070 修车

    Description 同一时刻有\(N\)位车主带着他们的爱车来到了汽车维修中心.维修中心共有\(M\)位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这\(M\)位技术 ...

  9. Web NFC API

    W3C Editor's Draft 29 December 2014 This version: http://www.w3.org/2012/nfc/web-api/ Latest publish ...

  10. #include< >和#include""的区别

    Answer 1:#include 会将指定文件的内容插入到源程序文件中.当使用的格式时,编译器会从环境变量INCLUDE所指定的路径中寻找file-name 文件,如果没有定义INCLUDE,C 编 ...