您的位置:首页 > 其它

GIT 学习与使用

2010-04-10 22:59 405 查看
创建时间:2010-04-10

作者:Steven Yang

E-mail:mqyoung@gmail.com

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 "mqyoung@gmail.com"

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: