반응형

[ 윈도우 git server 셋팅(인트라넷 셋팅 가능) ]
* 서버쪽
1. SSH 통신을 위해 Bitvise SSH Server 프로그램 설치 합니다.
2. Control Panel의 Server 탭의 Settings에 Open easy settings 클릭 합니다.
3. Windows accounts에 Add해서 'Local account' 등록 합니다.
* 클라이언트쪽
1. 탐색기로 \\서버IP로 등록한 계정으로 연결 후 tortoise git 사용 시작 합니다.
* 클라이언트쪽-인트라넷
1. Git Clone 실행 합니다.
2. URL에 \\서버 아이피\경로 입력 합니다.
3. Directory에 자동 입력된 로컬 폴더 확인 후 'OK'클릭 합니다.

[ NAS git server 셋팅 ]
* 서버쪽
..
* 클라이언트쪽-윈도우
1. TortoiseGit 설치 후 Git Clone 수행 합니다.
2. Clone Existing Repository URL에 아래 형식으로 URL 입력 합니다.
예시)
ssh://계정@서버 아이피 및 도메인:포트번호/var/services/homes/계정/repo/세부 폴더

[ NAS 서버를 사용한 경우 서버쪽 셋팅 ]
* 보안을 위해 SSH 포트를 변경한 경우. 허브 포트포워딩을 설정.

* 허브 설정 (KT 공유기 기준)
외부포트 : 변경 포트
내부 IP 주소 : Git 설정 서버 아이피
내부포트 : 변경 포트
프로토콜 : ALL(TCP, UDP)
설명 : 입력..

[ SourceTree/tortoiseGit & NAS Git ]
< 맥 sourceTree (새탭 만들고 )/ 윈도우 tortoise 에서 '클론' 수행 >
(서버에 ssh 접속해서 리포지토리 생성)
ssh -p 포트번호 계정@도메인
mkdir 폴더명 < 리포지토리 생성
cd 폴더명
git init --bare < 초기화
cd ..
chown -R 계정명:users 폴더명 < 권한 (해당 계정으로 로긴해서 만들면 필요 없음)
SourceTree 에서 로컬 탭 누르고, 새로 만들기 -> URL 에서 복제 선택
ssh://계정명@도메인:포트번호/경로 입력 후 목적지 경로 확인. '클론' 클릭.
ex) ssh://계정명@도메인:포트번호/var/services/homes/계정명/repo/폴더명

(서버 윈도우, 인트라 네트워크 망 윈도우간 통신에서는 먼저 '\\아이피 주소' 접속을 먼저 해주고 git 명령 수행(pull, push, ...)
URL: "\\아이피 주소\c\repo"
Directory: "C:\repo"
(서버 윈도우, C 아래 폴더 push 때 권한 오류 있어서 F로 옮기고 폴더공유 및 권한 모든 권한으로 설정.)
: 서버 쪽으로 push 문제 없음.
(서버 윈도우, Git Push error: refusing to update checked out branch 에러가 뜨는데, 윈도우 해당 폴더에서 아래 명령 수행해줘야함)
git config --bool core.bare true
(서버 윈도우, tortoise 
fatal: This operation must be run in a work tree 문제)
git config --unset core.bare

< git repository를 다른 컴퓨터로 가져와 별도 서버에 push 해버리기 >
1. 폴더 통째로 다른 컴퓨터로 복사해 오기.
2. 우클릭 TortoiseGit -> Settings
3. remotURL 부분에 ssh://계정명@도메인:포트번호/var/services/homes/계정명/폴더 경로
4. Push 수행
5. 또 다른 컴퓨터에서 Git Clone 수행으로 해당 repository 가져오면 그대로 보존 되어 있는 repository를 가져와 볼 수 있음.

< git 서버로 사용할 윈도우(7) PC 설정 >
- Bitvise SSH Server 프로그램 설치(Account 등록 하기)
- 서버 쪽 폴더 접근 에러가 날 경우 서버쪽 repository 경로가 c드라이브가 아닌 위치로 이동 설정을 하거나 폴더 접근 권한 수정을 해줍니다.

< 사용 노트 : 작업 싱크 원칙 >
= 클라이언트->서버
commit 눌러보고 작업한거 있는지 먼저 확인 처리.

(클라이언트 쪽)
revert 확인 -> pull
working -> commit -> push

(서버 쪽)
revert
= 서버->클라이언트
 commit 눌러보고 작업한거 있는 먼저 확인 처리.

(서버 쪽)
working -> commit

(클라이언트 쪽)
revert -> pull

반응형

+ Recent posts