出處:http://blog.chinaunix.net/u1/38994/showart_2329621.html
一.創(chuàng)建跟蹤分支
創(chuàng)建跟蹤分支,可以使用如下3種方式
1.使用repo start
2.使用git branch --track origin/master pool
3.使用git checkout -b pool origin/master
4.批量創(chuàng)建repo forall -c 'repo start pool .'
(可以使用repo abandon pool刪除分支)
二.創(chuàng)建完跟蹤分支之后,就可以直接同步merge遠(yuǎn)程代碼到上面建立的比如pool跟蹤分支了
repo sync
三.使用如下腳本gd或gd2查看自己本地所有修改了的但還未push回reporsitory的內(nèi)容
---lgit_diff腳本-------------
#!/bin/bash
path=$1
if [ $path ] && [ -d $path ] ; then
cd $path
[ $2 ] && name_only="--name-only"
else
[ $path ] && name_only="--name-only" && path=''
fi
remote=`git remote`
remote_name=`git branch -r | sed '/->/!d;s!.*/!!'`
diffs=`git diff $remote/$remote_name --name-only`
if [ "$diffs" ]; then
echo "=========================================="
[ $path ] && echo $path
[ "$name_only" = "" ] && echo
# repo sync .
git diff $remote/$remote_name $name_only
fi
[ $path ] && cd - > /dev/null
---gd腳本-------------
#!/bin/bash
# repo sync
repo forall -c 'pwd' | xargs -l1 -I file lgit_diff file $1
---gd2腳本-------------
#!/bin/bash
repo sync
repo forall -c 'pwd' | xargs -l1 -I file lgit_diff file $1
四.進(jìn)入相應(yīng)修改目錄,直接git reset去掉無用的log
git reset hashid
git commit -am '寫一些此次提交綜合的說明文字'
五.使用如下腳本進(jìn)行check in或者
使用repo forall -c 'pwd' | xargs -l1 Sync2GitServerReporsitory統(tǒng)一提交多個(gè)變更的git庫
---Sync2GitServerReporsitory腳本-------------
#!/bin/bash
path=$1
[ $path ] && cd $path
remote=`git remote`
remote_name=`git branch -r | sed '/->/!d;s!.*/!!'`
local_name=`git branch | sed '/\*/!d;s/\*\ //'`
# We must Create a tracking branch, could use the following 3 ways
# 1. repo start $remote_name .
# 2. git branch --track origin/master pool
# 3. git checkout -b pool origin/master
# 4. 或者repo forall -c 'repo start pool .'批量創(chuàng)建
git pull $remote $remote_name
git push $remote $local_name:$remote_name
[ $path ] && cd - > /dev/null