문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| git:gitserver [2018/02/11 15:31] – [서버에 Git을 설치해서 공개하는 방법을 알아보자.] taekgu | git:gitserver [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| - | ===== 서버에 Git 설치하기 ===== | + | ====== 서버에 Git 설치하기 |
| 서버에 Git을 설치해서 공개하는 방법을 알아보자. | 서버에 Git을 설치해서 공개하는 방법을 알아보자. | ||
| ==== Bare저장소 ==== | ==== Bare저장소 ==== | ||
| + | <code bash> | ||
| + | git init --bare study.git | ||
| + | </ | ||
| + | |||
| + | **xxxxx** | ||
| 어떤 서버를 설치하더라도 일단 저장소를 Bare 저장소로 만들어야 한다. 다시 말하지만, | 어떤 서버를 설치하더라도 일단 저장소를 Bare 저장소로 만들어야 한다. 다시 말하지만, | ||
| - | $ git clone --bare my_project my_project.git | + | |
| - | Cloning into bare repository ' | + | Cloning into bare repository ' |
| - | done. | + | done. |
| 이제 my_project.git 디렉토리에는 복사한 Git 디렉토리 데이터만 들어 있다. | 이제 my_project.git 디렉토리에는 복사한 Git 디렉토리 데이터만 들어 있다. | ||
| 아래와 같이 실행한 것과 비슷하다: | 아래와 같이 실행한 것과 비슷하다: | ||
| - | $ cp -Rf my_project/ | + | |
| 물론 설정상의 미세한 차이가 있지만, 저장소의 내용만 고려한다면 같다고 볼 수 있다. 워킹 디렉토리가 없는 Git 저장소인 데다가 별도의 디렉토리도 하나 만들었다는 점에서는 같다. | 물론 설정상의 미세한 차이가 있지만, 저장소의 내용만 고려한다면 같다고 볼 수 있다. 워킹 디렉토리가 없는 Git 저장소인 데다가 별도의 디렉토리도 하나 만들었다는 점에서는 같다. | ||
| - | + | **xxxxx** | |
| - | 서버에 Bare 저장소 넣기 | + | ==== 서버에 Bare 저장소 넣기 |
| Bare 저장소는 이제 만들었으니까 서버에 넣고 프로토콜을 설정한다. git.example.com`라는 이름의 서버를 하나 준비하자. 그리고 그 서버에 SSH로 접속할 수 있게 만들고 Git 저장소를 `/srv/git 디렉토리에 저장할 것이다. 서버에 /srv/git 디렉토리가 있다고 가정하고 아래와 같이 Bare 저장소를 복사한다. | Bare 저장소는 이제 만들었으니까 서버에 넣고 프로토콜을 설정한다. git.example.com`라는 이름의 서버를 하나 준비하자. 그리고 그 서버에 SSH로 접속할 수 있게 만들고 Git 저장소를 `/srv/git 디렉토리에 저장할 것이다. 서버에 /srv/git 디렉토리가 있다고 가정하고 아래와 같이 Bare 저장소를 복사한다. | ||
| - | $ scp -r my_project.git user@git.example.com:/ | + | |
| 이제 다른 사용자들은 SSH로 서버에 접근해서 저장소를 Clone 할 수 있다. 사용자는 /srv/git 디렉토리에 읽기 권한이 있어야 한다. | 이제 다른 사용자들은 SSH로 서버에 접근해서 저장소를 Clone 할 수 있다. 사용자는 /srv/git 디렉토리에 읽기 권한이 있어야 한다. | ||
| - | $ git clone user@git.example.com:/ | + | |
| 이 서버에 SSH로 접근할 수 있는 사용자가 / | 이 서버에 SSH로 접근할 수 있는 사용자가 / | ||
| git init 명령에 --shared 옵션을 추가하면 Git은 자동으로 그룹 쓰기 권한을 추가한다. | git init 명령에 --shared 옵션을 추가하면 Git은 자동으로 그룹 쓰기 권한을 추가한다. | ||
| - | $ ssh user@git.example.com | + | |
| - | $ cd / | + | $ cd / |
| - | $ git init --bare --shared | + | $ git init --bare --shared |
| Git 저장소를 만드는 것이 얼마나 쉬운지 살펴보았다. Bare 저장소를 만들어 SSH로 접근할 수 있는 서버에 올리면 동료와 함께 일할 준비가 끝난다. | Git 저장소를 만드는 것이 얼마나 쉬운지 살펴보았다. Bare 저장소를 만들어 SSH로 접근할 수 있는 서버에 올리면 동료와 함께 일할 준비가 끝난다. | ||
| 그러니까 Git 서버를 구축하는데 사람이 할 일은 정말 별로 없다. SSH로 접속할 수 있도록 서버에 계정을 만들고 Bare 저장소를 사람들이 읽고 쓸 수 있는 곳에 넣어 두기만 하면 된다. 이제 준비됐다. 더 필요한 것은 없다. | 그러니까 Git 서버를 구축하는데 사람이 할 일은 정말 별로 없다. SSH로 접속할 수 있도록 서버에 계정을 만들고 Bare 저장소를 사람들이 읽고 쓸 수 있는 곳에 넣어 두기만 하면 된다. 이제 준비됐다. 더 필요한 것은 없다. | ||
| + | ==== 서버 사용시 고려사항 ==== | ||
| 다음 절에서는 좀 더 정교하게 설정하는 법을 살펴볼 것이다. 사용자에게 계정을 만들어 주는 법, 저장소를 읽고 쓸 수 있게 하는 법, 웹 UI를 설정하는 법 등은 여기에서 설명하지 않는다. 동료와 함께 개발할 때 꼭 필요한 것은 SSH 서버와 Bare 저장소뿐이라는 것만은 꼭 기억하자. | 다음 절에서는 좀 더 정교하게 설정하는 법을 살펴볼 것이다. 사용자에게 계정을 만들어 주는 법, 저장소를 읽고 쓸 수 있게 하는 법, 웹 UI를 설정하는 법 등은 여기에서 설명하지 않는다. 동료와 함께 개발할 때 꼭 필요한 것은 SSH 서버와 Bare 저장소뿐이라는 것만은 꼭 기억하자. | ||
| 줄 51: | 줄 57: | ||
| https:// | https:// | ||
| - | ==== 깃(git) 서버 만들기 ==== | + | ====== 깃(git) 서버 만들기 |
| 깃헙만 사용하지말고 깃서버도 만들어서 사용해보자. | 깃헙만 사용하지말고 깃서버도 만들어서 사용해보자. | ||
| 줄 79: | 줄 85: | ||
| === 자료출처 === | === 자료출처 === | ||
| http:// | http:// | ||
| + | |||
| + | ====== git remote HEAD 변경 ====== | ||
| + | clone 해온 remote 브랜치의 HEAD를 변경하고 싶을 때, | ||
| + | 예를 들면, remote 브랜치 일부만 남기고 싶을 때, HEAD가 지울 브랜치를 가리킬 경우, | ||
| + | 다음과 같이 하여 remote의 HEAD(즉, origin/ | ||
| + | <code bash> | ||
| + | git remote set-head origin <remote branch name> | ||
| + | </ | ||
| + | |||