본문 바로가기

개발노트/GIT&GITHUB

[Git][CentOS 7] 나만의 Git 서버 만들기

워드프레스를 이용하여 아내의 사이트를 만들기 시작했는데, 아직 진행된 것은 도메인 구매 정도?


IDE로는 phpStorm 을 사용하기로 했는데 ftp 를 이용하여 원격지의 소스를 다운로드, 업로드, 동기화할 수도 있는데 svn이나 git 에 익숙한 나로서는 뭔가 좀 weird 하게 느껴졌다. deployment 개념도 좀 다른 것 같고...


그래서 본격적으로 프로젝트를 시작하기에 앞서 Git 으로 형상관리를 하는게 좋을 것 같아서 설치하려고 하고, 이 글은 설치를 진행하면서 동시에 작성하는 것이라 중간 중간 오류가 나오는 모습을 볼 수도 있을 것이고 아닐 수도 있다.



-- 구축 후 한 마디 --

우선 어떻게 해야하는지 구조를 파악하는 것이 중요하다.

(보안에 문제가 있을까봐 실제 project 이름을 <projectName> 으로 표기 / project 이름이 포함된 스크린샷 삭제)


<구조>

CentOS 7(원격지), 로컬 머신(나의 경우 맥북)


1. 웹서버에 호스팅 되고 있는 실제 소스들 => CentOS 7 /home/<projectName>/

2. git bare repository 로 사용할 디렉토리 => CentOS 7 /home/git/repo/

3. 로컬 머신에서 코딩할 디렉토리 => macbook /Users/<userID>/phpStormProject/<projectName>/


<과정 요약>

1. CentOS와 맥북에 모두 git 설치


2. CentOS 에서 git 전용 계정 생성


3. git 계정으로 로그인하여 /home 디렉토리 아래 git 이라는 이름의 디렉토리를 생성


4. /home/git/repo/ 디렉토리를 만들고 /home/git/repo 에서 .git 으로 끝나는 빈 디렉토리 생성(나의 경우에는 <projectName>.git)


5. 해당 디렉토리에 이동하여 $ init --bare --shared 명령 실행


------------------------- 여기까지만 해도 (소스가 없는 상태라면) git 으로 형상관리를 할 수 있다. ------------------------------


6. git 계정으로 로그인한 상태에서 /home/<projectName> 디렉토리로 이동(여기에는 워드프레스 코어 파일들과 소스들이 있고, 웹에 호스팅되고 있다.)


7. /home/<projectName>/ 에 위치한 상태에서 $ git init 명령 실행


8. /home/<projectName>/ 에 그대로 위치한 상태에서 $ git add * && $git commit -m "<commit message>" && git add remote origin ssh://<serverIP>/home/git/repo/<projectName>.git && git push origin master 명령 실행


9. 맥북에서 프로젝트를 clone 해올 경로(macbook /Users/<userID>/phpStormProject/)로 이동한후 $ git init && $git add remote origin ssh://<serverIP>/home/git/repo/<projectName>.git && git push origin master 명령 실행


10. 디렉토리 유지한 상태에서 $ git pull remote origin master 명령 실행


11. 맥북에서 소스 수정 후 pull, commit, push 를 하면서 git 을 잘 쓰면 된다. 


12. CentOS 7 에서 웹 호스팅 되는 소스의 변경을 반영하려면 /home/<projectName>/ 으로 이동해서 $ git pull remote origin master 를 실행해주면 됨


-- 여기까지는 요약이므로 위에서 나온 명령들은 하나씩 하나씩 실행하기.


-- ssh 키는 로컬머신(맥북)에서 생성하고 서버로 업로드 해야하는게 권장되는 방법인 것 같다.


-- 아래부터는 참고 자료. 진행하면서 이것저것 해본 것을 정리하지 않은 것.


---------------------------------------------------


CentOS7


1. 패키지 관리자 업데이트(갱신) : 업그레이드 아님


# yum update



2. git 패키지 검색 및 설치

# yum list git
# yum install -y git


3. 설치가 끝나면 git 계정 설정


# git config --global user.name "<NAME>"

# git config --global user.email "<EMAIL_ADDRESS>"



4. git 사용자 추가 및 비밀번호 설정

# useradd git
# passwd git


5. git 사용자로 사용자 전환


# su - git



6. RSA 암호화 알고리즘 이용하여 키 생성(SSH 접속을 위해서) : ※ <나중에 추가>키는 서버가 아니라 로컬(다른 컴퓨터, 코딩을 할 컴퓨터)에서 생성해야하고 서버로 업로드 해야함.


$ cd ~

$ ssh-keygen -t rsa




7. 키가 생성되었음을 확인




8. Git 으로 버전 관리할 디렉토리를 생성하거나 이미 존재하고 있는 디렉토리에서 '*.git' 의 이름으로 디렉토리를 생성하고 그 디렉토리로 이동한 후 bare repository 로 초기화해준다. ==> bare repository 는 다른 곳에서 관리해주는 것이 좋음( 난 최종적으로 /home/git/repo/ 에다가 만들었음)





----------- 여기까지가 Git 서버에서 해야할 것들을 한 것 같다. -------------------



9. 버전 관리할 소스파일들의 상위 경로로 이동하여 초기화하고, 작업사본(working copy)를 추가하고 commit 해주자.

$ cd /home/<projectName>
$ git init
$ git commit -m "first commit" -a

여기까지 했을 때 이름과 이메일을 설정하지 않아서 오류가 뜬다.




3번 단계에서 설정할 땐 root 계정으로 로그인한 상태여서 git 계정으로 하고 있는 지금은 그 설정이 적용되지 않는 것 같다.
즉, 리눅스 계정별로 git의 유저이름, 이메일주소 등을 따로 설정/관리할 수 있다.

다시 리눅스 계정 git 이 사용할 이름과 이메일 주소를 다시 설정한다. (리눅스 계정 git 이라는 이름의 계정이 로그인한 상태)

$ git config --global user.name "<NAME>"

$ git config --global user.email "<EMAIL_ADDRESS>"





10. 다시 커밋을 해보자.


$ git commit -m "first commit" -a


아래는 그 실행 결과 : 커밋이 잘 되었다.









--- 작성중.... ---



음.. 8번과정까지가 git server 로서 해야할 일들인 것 같다.


음.. 지금은 phpStorm이 설치된 컴퓨터가 없으니 집이나 회사에 가서 마저 해보아야할 듯... 일단 여기까지...




--- 이어서 작성중 ---


집으로 돌아와 phpStorm 이 설치되어있는 맥북을 로컬 머신으로 사용.


 < CentOS 에서 실행 >

mkdir -p /home/git/repo/<projectName>.git

cd /home/git/repo/<projectName>.git

git init --bare --shared



 < CentOS , Macbook 두 군데 모두 동일하게 실행 >

git remote add origin ssh://git@<serverIP>:<portNumber>/home/git/repo/<projectName>.git




반응형