创建时间:2010-04-10
作者:Steven Yang
E-mail:[email protected]
XtratuM是一个依赖与Linux的实时操作系统,在同Linux kernel版本跟进的过程中,为了方便我建立了对应的xmlinux的git仓库,也就是说打过XtratuM补丁的kernel仓库(repository)。这个过程也是我学习GIT的过程,详细记录操作过程如下:
主要步骤:
(一)clone kernel仓库到本地,再提交到git server;
(二)建立相应的分支,进行开发;
1 建立仓库
1) clonet linux仓库,然后上传到服务器
GIT Server
mkdir xmlinux.git
cd xmlinux.git/
git --bare init
chmod -R g+w objects
chmod -R g+w refs
GIT client
git config --global user.name “Steven Yang”
git config --global user.email "[email protected]"
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6-stable.git
cd xmlinux/
git commit -a -m "Initial Linux kernel master repository"
//project相当于steven@project:/home/pm.git/xmlinux.git/的别名
git remote add project steven@project:/home/pm.git/xmlinux.git/
git push project master
//Create new branchs xmlinux-2.6.17.4,最后一个参数是 linux-2.6.17.4对应的commit
git branch xmlinux-2.6.17.4 4f9619cdd90ac846fa0ca6e9e8a9d87a0d6b4f57
//切换到xmlinux-2.6.17.4分支
git checkout xmlinux-2.6.17.4
//应用patch于相应的kernel版本
patch --dry-run -p1 < ../xtratum_linux_2.6.17.4.patch
patch -p1 < ../xtratum_linux_2.6.17.4.patch
//记录所有新添加的文件
git add .
//记录所有更改(不包括新文件)并commit
git commit -a
#edit the comment
git remote add origin steven@project:/home/pm.git/xmlinux.git
//将本地的分支xmlinux-2.6.17.4同步到远端server的同名分支
git push origin xmlinux-2.6.17.4:xmlinux-2.6.17.4
=====Optional operation
#Archive the source code
git checkout xmlinux-2.6.17.4
git archive --format=tar --prefix=xmlinux-2.6.17.4/ HEAD | (cd /tmp/ && tar xf -)
#Use tag
git tag stable-2.6.23.17 6531868a73a6c91bf0e3e60ded7d1440ee24dfa8
git branch xmlinux-2.6.23.17 stable-2.6.23.17
#Delete a branch
git branch -d [branch_name]
git branch -D [branch_name]
#Delete a tag
git tag -d [tag_name]
#See info
git cat-file -t 19f00f070c17584b5acaf186baf4d12a7d2ed125
git show 19f00f070c17584b5acaf186baf4d12a7d2ed125
git log
git log -p
#git push
git push origin test:master // 提交本地test分支作为远程的master分支
git push origin test:test // 提交本地test分支作为远程的test分支
git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心
#Get remote branch
git branch -r //look remote branch
git checkout -b [local_branch_name] [remote_branch_name]
git checkout -b xmlinux-2.6.17.4 origin/xmlinux-2.6.17.4 //如果本地分支名已经存在,则不需要“-b”参数, 后一个参数里origin是我们在上面定义的,相当于server的URL