개발/프로젝트 관리

[git] 원격 저장소 생성하기

smile-haha 2022. 12. 23. 01:10
반응형

내가 생각하는 프로젝트 관리 시스템(git)을 사용하는 이유는 협업을 위해서이다.

(물론 혼자 개발을 하더라도 git으로 관리를 하면 수정 history를 확인 할 수 있기 때문에 유용할 것이라고 생각하지만 나는 혼자 개발할 때는 git을 따로 쓰지 않았다.)

 

git을 통한 협업을 위해서는 원격 저장소가 있어야 한다.

원격 저장소에서 소스를 받고(pull) 소스를 수정해서 올리고(push) 다른 팀원이 해당 내용을 확인하여 수정된 소스를 받아(pull) 이어 개발을 하기 위해서이다.

 

🎈원격 저장소와 로컬 저장소의 차이

원격 저장소는 bare repository이어야 하고, 로컬 저장소는 non-bare repository이어야 한다.

왜냐하면 non-bare repository에서 non-bare repository로는 push가 안된다고 한다.

bare는 벌거벗은 이라는 의미로, bare repository는 non-bare repository에 있는 .git 폴더가 까져 있는 형태이다.

(아래 그림 참고) 

또한 bare repository는 non-bare repository에 작업영역만 없는 것이며, 작업영역이 없기 때문에 수정/삭제/추가가 불가능 하다고 한다.

🎈bare repository 생성하는 방법

$ git init --bare

git init은 non-bare repository를 생성하는 것인데 여기에 --bare 옵션을 주면 작업영역이 없는 bare repository가 생성된다.

 

 

🎈서버 pc에 원격 저장소 생성하고 로컬 pc에 연결하는 방법

서버 pc에 원격 저장소 생성하고 로컬 pc에 연결하는 방법으로는 2가지가 있다.

 

 

💡 서버 pc에 bare repository 생성 후 로컬 pc에서 clone 받아 작업하고 push

1. 서버 pc에서 bare repository 생성

$ git init --bare

2. 로컬 pc 작업 위치로 이동하여 서버 pc에 생성된 bare repository에 있는 소스 clone

$ git clone <repo url> <dir>

※ clone 명령어는 복사하라는 명령.

 - repo url : 복사해올 저장소의 주소

 - dir : 저장소를 로컬에 복제할 위치. 

              생략 가능하며, 특별한 이유가 없다면 보통 생략. 생략하면 현재 명령어를 치는 위치에 복사

3. 로컬 pc에서 작업 ~

4. git add / commit / push 명령을 통해 원격 저장소에 수정한 작업 반영

 

 

💡 로컬 pc에 non-bare repository 생성하여 작업하고 서버 pc에 bare repository 생성한 뒤 push

1. 로컬 pc에서 git init으로 현재 위치에 non-bare repository 생성

$ git init

2. 로컬 pc에서 작업 ~

3. git add/commit

4. 서버 pc에서 저장소를 생성할 위치로 이동, bare repository 생성

$ git init --bare

5. 로컬 pc에서 git remote에 방금 만든 저장소 추가

$ git remote -v //등록된 remote 목록 확인
$ git remote add <name> <url> // remote 등록

6. 로컬 pc에서 push

$ git push <remote name> <branch name>
//여기서 이렇게 remote name과 branch name을 매번 입력하는 것이 번거롭다면
//아래 명령어를 통해 가장 최근에 push했을때 옵션으로 간단하게 push할 수 있다.
$ git config --global push.default current
//위 명령어를 치면 아래처럼 git push 만으로 push를 실행할 수 있다.
$ git push

 

반응형

'개발 > 프로젝트 관리' 카테고리의 다른 글

[git] 기초 (init/status/add/commit)  (0) 2022.12.21