GIT 学习与使用

创建时间: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

你可能感兴趣的:(linux,server,git,patch,branch,archive)