Shell 스 크 립 트 소 칼 시험 (2) - git 창고 선택 및 이전
제 개인 적 인 습관 은 모든 git 창 고 를 reposcory 라 는 디 렉 터 리 에 두 었 습 니 다.디 렉 터 리 아래 dirs/. git/config 의 주 소 를 하나씩 검사 한 다음 git clone 을 통 해 다른 기계 에서 창고 디 렉 터 리 를 재 구축 하 는 것 은 너무 프로 답지 못 해 보 입 니 다. 그래서 저 는 아주 간단 한 스 크 립 트 (my reposcory. sh) 를 써 서 창고 의 주 소 를 읽 고 모든 주 소 를 한 파일 에 추가 한 다음 다른 스 크 립 트 (clone. sh) 를 사용 합 니 다.이 파일 의 모든 주 소 를 git clone 으로 진행 하 는 것 은 간단 합 니 다.
우선 git 창고 주 소 를 수집 하 는 셸 스 크 립 트 를 보십시오.
#!/bin/bash
# (C) 2014 Yunlong Zhou <[email protected]>
# Under licence GPL
# File : my_repository.sh
# Introduction:
# This script is using for collect all the git address to a file -- repository_file
# Useage :
# 1. cd repository -- cd to the dir that you store all the git repository
# 2. chmox +x my_repository.sh -- give the script a execute permission
# 3. ./my_repository.sh
# for delete old temp file ,if there is !
if [ -f all_dir -a -f repository_file ]; then
echo "Now delete old temp file"
rm all_dir repository_file 2> /dev/null
fi
# read all the items under this dir to the file all_dir
ls -l | awk '{print $9}' > all_dir
# deal with every git repository dir and collect the url then store to file repository_file
while read FILE_NAME
do
if [ $FILE_NAME != " " -a -d $FILE_NAME -a -s $FILE_NAME ];then
echo "Now dealing the "$FILE_NAME
if [ -d $FILE_NAME/.git ]; then
grep -e "url" $FILE_NAME/.git/config | cut -d "=" -f2 | cut -d " " -f2 >>repository_file
fi
fi
done < all_dir
# remove temp file and give a Hint !
rm all_dir
if [ $? == 0 ]; then
echo "Ok,all the url of your repository have been send to file -- repository_file"
fi
현재 모든 창고 디 렉 터 리 에 git 창고 주소 가 추가 되 었 습 니 다.
repository_file
파일 중:
long@zhouyl:~/repository$ cat repository_file
git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
git://gitorious.org/tinylab/pleac-shell.git
git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git
...
이제 우 리 는 scp 를 사용 하여 reposcory 를file 파일 및 아래 스 크 립 트 를 새로 설 치 된 컴퓨터 에 복사 합 니 다 (scp reposcory file clone. [email protected]:/tmp/), 그리고 clone. sh (./clone. sh) 를 직접 실행 하면 됩 니 다!
#!/bin/bash
# (C) 2014 Yunlong Zhou <[email protected]>
# Under licence GPL
# File : clone.sh
# Introduction:
# This script is using for git clone every item in repository_file
# Useage :
# 1. ./clone.sh
if [ ! -f repository_file ]; then
echo "There is no repository_file ,we will exit"
exit
fi
while read READLINE
do
echo "Now we will clone $READLINE"
git clone $READLINE
done < repository_file
rm repository_file
전송:http://blog.csdn.net/longerzone/article/details/20877841”
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZoopKeeper 시각 화 zkui 프레임 워 크프로필 zkui 는 zookeeper 에 웹 관리 인터페이스 를 제공 하여 zookeepr 의 노드 값 을 CRUD 로 조작 할 수 있 고 안전 인증 도 제공 합 니 다.github 주소:https://github....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.