Notice
Recent Posts
Recent Comments
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- ubuntu
- Vista
- witcher3
- Programming
- TIP
- 우분투
- Hardy
- Game
- config
- Mac
- 영화감상
- screenshot
- wow
- 와우
- firefox
- imac
- 월드오브워크래프트
- software
- debian
- 스크린샷
- windows
- vim
- 위처3
- 파이어폭스
- 하드웨어
- 영화
- 리눅스
- 지름
- Python
- Linux
- Today
- 504
- Total
- 1,249,865
잉블~!
git server repository 환경 구성하기 본문
git은 kernel 프로젝트에서 그동안 사용해오던 BitKeeper대신
kernel 소스버전 관리를 위해 리누스 토발즈가 참여하여 개발한
분산 소스 버전 관리 시스템입니다.
이 git을 사용하기로 결정한 이유는 CVS나 SVN등의 중앙 버전 관리 시스템들은
cvs/svn 서버가 켜져있어야만 commit등의 작업을 수행할수 있지만
git은 서버가 켜져 있지 않아도 local 저장소에 commit등의 작업을 할수 있어서
저처럼 여러 컴퓨터에서 작업을 수행할때 불편함을 조금은 덜수 있을거 같았기에
설정을 해보았습니다.
어후 이미지 수정 완료 ㅡㅜ :: dia로 그린 이미지....
제가 사용하려고 하고자 하는 구조는 이미지처럼 컴퓨터 3대에서
각각의 local 저장소를 만들고 3대중 한대인 노트북에 서버 저장소를 만들어서
서로간에 clone, pull, fetch등을 수행하는 것입니다.
서버 저장소를 만들곳은 우분투 리눅스 ( Ubuntu Linux ) 10.04 LTS버전이
설치되어있는 노트북입니다.
설정 방법
0. git 패키지 설치
$ sudo apt-get install git-core
1. git server 계정 생성
$ sudo adduser \
--system \
--shell /bin/bash \
--gecos 'git version control' \
--group \
--home /home/git \
git
$ sudo passwd git
2. git 정보가 저장될 repositories 디렉토리 생성
$ sudo -u git mkdir /home/git/repositories
3. 서버측에 저장할 프로젝트를 로컬에 생성
$ cd
$ mkdir Project
$ cd Project
$ touch README
$ git init
$ git add .
$ git status
$ git commit -a -m "Project First Commit"
4. public repository를 만들기 위한 설정
$ pwd
~/Project
$ cd ..
$ ls
Project
$ git clone --bare Project Project.git
$ touch Project.git/git-daemon-export-ok
5. Project.git을 git계정의 repositories로 이동
$ sudo -u git cp -R Project.git /home/git/repositories
$ cd /home/git/repositories/Project.git
$ sudo -u git git --bare update-server-info
$ sudo -u git mv hooks/post-update.sample hooks/post-update
6. 다른 컴퓨나 임의의 디렉토리에서 clone 명령을 수행 파일을 제대로 받아오는지 확인
Project.git을 만들때 사용한 Project 디렉토리는 백업후 clone을 통해 새로 생성을 해주도록 한다.
clone을 통해 Project.git 내용을 받아와야 따로 remote를 추가하지 않아도 origin이라는 alias로
remote가 기본 셋팅이 되게 된다.
$ mkdir dev
$ cd dev
$ git clone git@HostName:repositories/Project
7. 기타 명령어
- 로컬 리포지토리에 서버 저장소 alias 추가
$ pwd
~/Project
$ git remote -v
$ git remote add sv git@HostName:repositories/Project
$ git remote -v
sv git@HostName:repositories/Project (fetch)
sv git@HostName:repositories/Project (push)
- 로컬 리포지토리에서 파일을 수정한뒤 서버 리포지토리에 업로드 하는 방법
$ vim README
$ git commit -a -m "README file modified"
$ git push sv
- 서버 리포지토리에 변경된 내용을 받는 방법
$ git fetch sv
설정에 참고한 사이트
01. git manual : [ http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#setting-up-a-public-repository ]
02. aesop git 강좌 : [ http://www.aesop.or.kr/?document_srl=156745&mid=Board_Documents_Application ]
03. windows git
- msysgit : [ http://code.google.com/p/msysgit/ ]
- git Extensions : [ http://sourceforge.net/projects/gitextensions/files/ ]
windows에서 사용하기로는 git Extensions가 가장 좋을듯 합니다.
msysgit은 cmd창에 리눅스 명령이 가능하도록 만든 형식이라 콘솔 명령이 익숙치 않으면 조금 불편한데다가 git Extensions를 설치할때 msysgit을 설치하게됩니다. 그 위에 GUI를 입혀서
작동하는 방식이다보니 처음 사용자는 GUI쪽이 좀더 낫겠지요
덧붙이는 글 1.) 어제 이 설정을 하느라 거의 12시간을 소비했네요.....
처음부터 git manual 사이트를 참고해서 했으면 금방 끝냈을 것을 google 검색으로 나온 사이트들을
참고 하면서 하느라 제가 구성하려는 환경에서는 그다지 필요치 않은
gitosis라던지 git daemon이라던지 설치해서 삽질하느라 날린 시간 생각하니 어후 ㅠ.ㅠ
한줄 결론 : 공식 메뉴얼 사이트가 짱임!!!
덧붙이는 글 2.) 쓸데없는 곳에서 삽질하는 중에 올바른 방법을 알려주신 peniar님 감사합니다.
- Tag
- git, server repository
13 Comments
-
lowid
2010.09.29 12:22 신고
역시 RTFM이군요.. 메뉴얼을 읽어보는게 최고.......
아 그리고 유튜브에 (git)강좌 동영상도 있으니깐 요거보고 하는것도 좋을듯해요
뭐 영어의 제약이있긴하지만... -
환상경
2010.09.29 14:22 신고
괜히 google에서 검색한 사이트 내용 따라한다고 gitosis패키지 설치라던지 gitweb 설치라던지 git-daemon 만든다고 삽질한거 생각하면 어후 ㄷ ㄷ ㄷ ㄷ ㄷ
그런데 git 메뉴얼 보니 --bare 옵션으로 바로 해결이 되어버리는 정말 허무했어요 ㅡㅜ 이거때문에 어제 새벽 3시30분까지 삽질했었어요 =_= -
innis
2010.11.13 19:40 신고
오! 환옹 잘 보고가용.. =3
-
환상경
2011.07.18 21:53 신고
옙 ^^;; 덧글을 다신걸 이제서야 봤네요 ㅋㅋㅋ
-
bemga
2011.07.18 11:49 신고
저도 gitosis 이런거 필요한건줄 알고 있었는데, 아니었군요 ㅜ.ㅜ
좋은 정보 감사합니다. -
환상경
2011.07.18 21:54 신고
공식 메뉴얼을 잘 살펴봤으면 해결되었을 문제를 굉장히 오래 삽질을 해버렸죠 ㅡㅜ
-
하얀고양이
2011.08.16 11:40 신고
몇개 오타가 있어 말씀드립니다~
orgin -> origin
menual -> manual
정보 감사합니다~ -
환상경
2011.08.16 23:24 신고
수정했습니다.
알려주셔서 감사합니다. ^^ -
Opheliasong
2012.01.13 15:03 신고
이런 좋은 자료를!!! 손쉽게 하는 방법이있었군요. 좋은 정보 감사합니다.^^
-
환상경
2012.01.15 10:43 신고
도움이 되었다니 다행이네요 ^^
-
guanming
2012.06.19 13:58 신고
저 역시 좋은 정보 보고 갑니다^^
-
환상경
2012.06.24 12:00 신고
덧글을 뒤늦게 봤네요
방문해주셔서 감사합니다 ^^ -
김혁
2013.03.29 14:11 신고
감 잡는데 큰 도움 되었습니다.