git 用法

android kernel    http://source.android.com/source/building-kernels.html




git clone [email protected]:/pub/gittrees/private/unicore-kernel-2.3.5.git

提交方法:
git status  查看新文件
git add  ***
git  commit -m  "********"    向本地版本库提交

git push          向远程版本库提交




unicore kernel 单独编译方法:

make ARCH=unicore CROSS_COMPILE=../prebuilt/linux-x86/toolchain/uc4-1.0.4-hard/bin/unicore32-linux-(这个是你使用的交叉编译工具位置,注意根据实际路径修改) uImage



源码下载流程:

unicore-android-2.1源码是通过git和repo来管理的,如果机器上没有git和repo,需要先进行安装:
git:

sudo yum install git-core

repo:
下载repo,然后:

sudo mv repo /usr/bin/repo
sudo chmod +x /usr/bin/repo

首先下载前请发送用户公钥给我,位置:
为了能够匿名访问源码库,每个人需要生成自己的公钥/私钥对,查看用户主目录下是否有.ssh目录:

$ ls ~/.ssh/      // ~为你的用户根目录,超级用户在root下查看

如果.ssh存在,且目录下有一对名为id_rsa和id_rsa.pub的文件,他们就是你的公钥/私钥对。将id_rsa.pub文件重命名为自己的用户名后,通过附件形式发给我(如:yanlin.pub 。切记,需要发送的是id_rsa.pub 文件而不是id_rsa)。
如果你的 .ssh 目录下没有公钥/私钥对,则需要生成自己的公钥/私钥对。方法:
$ ssh-keygen
接下来,直接按Enter键就可以了。完成后你的用户目录下就可以找到公钥/私钥对了。
请将id_rsa.pub文件发送给我: [email protected]

然后对git做一些简单的配置:

用户名配置:

git config --global user.name
例: $ git config --global user.name "Yang Yanlin"

邮箱配置:

git config --global user.email
例: $ git config --global user.email [email protected]

颜色配置:

$ git config --global color.ui auto

然后大家就可以下载源码了

mkdir unicore-android-2.1
cd unicore-android-2.1
repo init -u [email protected]:/pub/gittrees/unicore-android-2.1/platform/manifest.git -b android-2.1_r2.1p2
repo sync
./init_wst

同步和提交代码
同步:

在unicore-android-2.1目录下:
repo sync
可以更新所有源码,进入某个git子项目,例vender:
git pull
这样则只会更新vender目录。

提交:

对项目作了修改后,需要提交,这时的提交分为三种情况(***需要注意的是每次修改前先进行同步: git pull):
这里以vendor为例说明:
$ cd vendor
1) 单个新文件的提交:
$  echo "test file"  >>  test
这时,用git status命令查看:
$ git status
# On branch master
# Untracked files:
#   (use "git add ..." to include in what will be committed)
#
# test
nothing added to commit but untracked files present (use "git add" to track)
可以看出这个test文件的状态是 “untracked files”
向本地仓库添加这个文件:
$  git add test
这时再用git status命令查看,则可以看出test的状态是:“Changes to be committed”
然后想本地仓库提交:
$  git commit -m "add new file "
"add new file"
[master bbe823c] add new file
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 applications/test

上面的“add new file” 是一个说明信息,大家可以自己写,只要描述清楚这次提交是做什么就可以了。
这时再使用git status命令查看,则可以看到:
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
说明test已经提交到本地仓库,已经没有新文件了。
接下来,将test提送到远程仓库,这样别的成员就可以下载到你的修改了:
$  git push sl  HEAD
这样单个文件的提交就完成了。可以看出一个完整的提交过程有一下步骤:
1.添加到本地仓库: git add fielname
2.提交到本地仓库: git commit -m "message"
3.推送到远程仓库: git push sl HEAD
期间,可以用 git status擦看状态。

2) 多个新文件的提交:
如我在vendor目录下新建了一个目录,并创建了多个文件:
$ mkdir  dir
$ echo "file 1" >> dir/file1
$ echo "file 2" >> dir/file2
$ echo "file 3" >> dir/file3
这时,要提交dir目录中的所有文件可以用下面的方法:
$  git add dir
$  git commit -m "add new dir"
$  git push sl HEAD

如果 要提交位于不同目录中的不同文件:
如:
例vendor下有两个文件:nvidia和redflag
$ echo "file 1" >> nvidia/file1
$ echo "file 2" >> redflag/file2
则只有添加到本地仓库的步骤跟上面不一样:
$  git add nvidia/file1
$  git add redfla/file2
$  git commit -m "add some new files"
$  git push sl  HEAD
也就是说,提交多个文件的时候,需要把他们都添加到本地仓库,然后再提交。

3) 旧文件修改后提交:
如果修改了dir下面的 fiel1的内容:
$ echo "adsfsdf" >> dir/file1
这时要提交fiel1,有两个方法:
$  git add dir/file1
$  git commit -m "modify file1"
$  git push sl HEAD
或者:
$  git commit -a -m "modify file1"
$  git push sl HEAD
从上面的例子可以看出,git commit -a -m "modify file1"中的-a选项就相当于 git add中的 add。
如果修改了多个文件,提交的时候将多个文件分别添加到本地仓库,然后提交就可以了。

添加两条repo的使用方法:
$ repo sync   //同步源码,会同步所有子git项目的源码
$ repo diff    //查看所有git项目中的改变

$ repo forall -c "git branch"    //查看每个git项目的branch





#include
#include

int main(int argc, const char *argv[])
{
    char kk[100] = {0};
    int i = 764;

    sprintf(kk,"echo %d >> filename",i);

    printf("%s\n",kk);

    system(kk);
    

    return 0;
}










关于git的使用:
可能好多人都是初次接触git,因此我就当大家都没有用过git,详细说明一下git的提交流程。学过git的可以不看这封邮件。
如果是初次使用git的话,可能你的机器需要一些配置:
检查你的机器是否有repo和git这两个工具:
$  git
如果没有,则需要先安装:
安装git:
$ yum install git-core

可能还需要做一些配置:

用户名配置:
git config --global user.name
例: $ git config --global user.name "Yang Yanlin"

邮箱配置:
git config --global user.email
例: $ git config --global user.email [email protected]

颜色配置:
$ git config --global color.ui auto


现在以bootloader目录为例:
进入bootloader目录:
$  cd bootloader/
$  ls -la
可以看到有一个.git目录,说明这是一个git项目。

对项目作了修改后,需要提交,这时的提交分为三种情况(***需要注意的是每次修改前先进行同步: git pull):
1) 单个新文件的提交:
$  cd bootloader/
$  echo "test file"  >>  test
这时,用git status命令查看:
$ git status
# On branch master
# Untracked files:
#   (use "git add ..." to include in what will be committed)
#
# test
nothing added to commit but untracked files present (use "git add" to track)
可以看出这个test文件的状态是 “untracked files”
向本地仓库添加这个文件:
$  git add test
这时再用git status命令查看,则可以看出test的状态是:“Changes to be committed”
然后想本地仓库提交:
$  git commit -m "add new file "
"add new file"
[master bbe823c] add new file
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 applications/test

上面的“add new file” 是一个说明信息,大家可以自己写,只要描述清楚这次提交是做什么就可以了。
这时再使用git status命令查看,则可以看到:
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
说明test已经提交到本地仓库,已经没有新文件了。
接下来,将test提送到远程仓库,这样别的成员就可以下载到你的修改了:
$  git push
这样单个文件的提交就完成了。可以看出一个完整的提交过程有一下步骤:
1.添加到本地仓库: git add fielname
2.提交到本地仓库: git commit -m "message"
3.推送到远程仓库: git push
期间,可以用 git status擦看状态。

2) 多个新文件的提交:
如我在bootloader下新建了一个目录,并创建了多个文件:
$ mkdir  dir
$ echo "file 1" >> dir/file1
$ echo "file 2" >> dir/file2
$ echo "file 3" >> dir/file3
这时,要提交dir目录中的所有文件可以用下面的方法:
$  git add dir
$  git commit -m "add new dir"
$  git push

如果 要提交位于不同目录中的不同文件:
如:
$ echo "file 1" >> BOOK/file1
$ echo "file 2" >> CALL/file2
$ echo "file 3" >> CTV/file3
则只有添加到本地仓库的步骤跟上面不一样:
$  git add BOOK/file1
$  git add CALL/file2
$  git add  CTV/file3
$  git commit -m "add some new files"
$  git push
也就是说,提交多个文件的时候,需要把他们都添加到本地仓库,然后再提交。

3) 旧文件修改后提交:
如果修改了dir下面的 fiel1的内容:
$ echo "adsfsdf" >> dir/file1
这时要提交fiel1,有两个方法:
$  git add dir/file1
$  git commit -m "modify file1"
$  git push
或者:
$  git commit -a -m "modify file1"
$  git push
从上面的例子可以看出,git commit -a -m "modify file1"中的-a选项就相当于 git add中的 add。不过在方法1中如果用
git commit -a -m "modify file1"也没错啊。如果这个地方不懂的话,以后只要提交,都用git commit -a -m “message”就行了。
如果修改了多个文件,提交的时候将多个文件分别添加到本地仓库,然后提交就可以了。

如果有什么疑问的话,欢迎给我邮件 : [email protected]
谢谢!


你可能感兴趣的:(git 用法)