Git - 저장소 만드는 방법

dev_minoflower·2022년 4월 1일
0
post-thumbnail

여타 많은 블로그나 공식 홈페이지에서는 git을 설정하고 github 레포지토리를 만드는 방법을 많이 다루고 있다.

이 글의 목표는 git을 생성하고 원격 저장소까지 보내는 과정을 상세하게 풀어서 왜 add, commit, clone이라는 명령어를 사용하는지에 초점을 뒀다.


git을 활용한 저장소를 생성하는 방법은 크게 Bottm-Up 방식Top-Down 방식으로 나뉜다.


Bottom-Up 방식

내 컴퓨터에서 디렉토리(작업 공간)를 만들어 git을 초기화하고 원격 저장소를 지정한 다음에 add-commit-push하는 방식이다.


1. 디렉토리 생성 및 이동하기

$ mkdir {디렉토리이름}     * { } 는 포함X
$ cd {디렉토리이름}

shell command
mkdir: 디렉토리를 생성
cd: 디렉토리로 이동

2. git 초기화하기

$git init

해당 명령어를 입력하면 현재 디렉토리에 .git 디렉토리가 생성된다.
($ ls -a 명령어로 .git 파일을 확인해보자)

.git 은 저장소에 필요한 뼈대 파일이 들어 있다.


3. 레포지토리 생성 및 원격 저장소와 연동하기

$ git remote add origin {git주소/레포지토리이름.git}

⬇️ github에서 레포지토리를 생성하면 나타나는 화면. .git 주소를 복사하기

명령어를 풀어서 설명해보면
"앞으로 원격 저장소를 origin이라는 별칭(alias)를 가진 {.git} 주소(원격 저장소)로 지정할께" 라는 의미로 해석할 수 있다.

origin이라고 붙이는 이유는 git에서 원격 저장소의 별칭으로 default 값으로 지정해뒀기 때문이다. (clone으로 원격 저장소를 불러오면 origin임을 알 수 있다.)

연동만 했을 뿐이고 디렉토리는 언제나 작업 공간을 의미한다.
아직 로컬 저장소가 아니다!


(선택) 4. README.md 생성

$ touch README.md

README.md 파일 생성은 자유이나, 프로젝트를 설명하는 문서와도 같기 때문에 필요가 아닌 필수로 넣는 것이 국룰이라고 한다.

shell command
touch: 파일 생성(텍스트로 형성된 파일 e.g. .txt, .java, .py, .c)


5. 파일 add 및 commit

$ git add {파일 이름}
$git commit or $git commit -m "docs: Create README.md"

add

  • 현재 디렉토리에서 작업한 파일(들)을 staging area로 올리는 단계이다.
  • staging area란 파일(들)을 임시로 올려두는 장소이며, 줄 단위로 추적해서 변경사항을 감지한다.
  • 여러 파일을 올리고 싶다면 $git add .java 같이 확장자 이용

commit

  • 추가한 파일(들)에 대한 설명을 작성하여 로컬 저장소에 등록하는 단계이다.
  • commit 작성에도 요령이 있는데 Conventinal Commit을 참고해보자.
  • -m 를 붙이는 방법은 추천하지 않는다. 만약 마지막에 큰따옴표를 깜빡하고 넣지 못한다면 enter를 눌렀을 경우에 commit 메시지가 계속 입력된다.

5. master -> main branch로 변경

$ git branch -M main

git을 처음 초기화하면 master branch로 설정되어있는 것을 확인하게 되는데,
git에서 평등 운동의 일환으로 master-slave 에서 이 master 단어 사용을 지양하자는 취지로 main으로 변경하기를 권고한다.

그래서 위의 명령어가 바로 현재 branch의 이름을 변경하는 커맨드이다.

6. 원격 저장소에 보내기

$git push -u origin main

명령어를 풀어서 설명해보면
"origin이라는 별명을 가진 원격 저장소한테 파일과 메시지 내용을 보낼꺼야(push). 근데 아직 원격 저장소에는 main이라는 branch가 없으니까 로컬 저장소 main branch랑 원격 저장소 main branch랑 같게 만든(-u) 후에 보낼께." 라는 의미로 해석할 수 있다.

push: 로컬 저장소에서 원격 저장소로 전송하는 단계이다.




Top-Down 방식

원격저장소를 먼저 clone하고 add-commit-push를 진행하는 방식이다.


1. 레포지토리 생성(README.md 추가) 및 원격저장소 clone하기

$ git clone {git주소/레포지토리이름.git}

⬇️ Code 버튼 클릭 후 HTTPS탭에 있는 .git주소 복사

clone: github에 새로운 레포지토리를 생성(=원격 저장소)해서 작업 공간(디렉토리)으로 불러오는 명령어다.

위의 명령어를 입력하면 레포지토리 이름과 똑같은 디렉토리가 생성된다.

2. 파일 add 및 commit

(Bottom-up과 동일)

$ git add {파일이름}
$git commit or $git commit -m "docs: Create README.md"

add

  • 현재 디렉토리에서 작업한 파일(들)을 staging area로 올리는 단계이다.
  • staging area란 파일(들)을 임시로 올려두는 장소이며, 줄 단위로 추적해서 변경사항을 감지한다.
  • 여러 파일을 올리고 싶다면 $git add .java 같이 확장자 이용

commit

  • 추가한 파일(들)에 대한 설명을 작성하여 로컬 저장소에 등록하는 단계이다.
  • commit 작성에도 요령이 있는데 Conventinal Commit을 참고해보자.
  • -m 를 붙이는 방법은 추천하지 않는다. 만약 마지막에 큰따옴표를 깜빡하고 넣지 못한다면 enter를 눌렀을 경우에 commit 메시지가 계속 입력된다.

3. 원격 저장소에 보내기

$git push or $git push origin main

push: 로컬 저장소에서 원격 저장소로 전송하는 단계이다.

Bottom up과 달리 clone 명령어를 통해 origin 별칭이 default로 붙고 main 또한 원격저장소에서 가져왔기 때문에 -u를 사용하지 않는다.
(원격 저장소의 main branch == 로컬 저장소의 main branch 형성이 돼있음)



기타 꿀팁

$ git status : git의 현재 상태 확인
$ git rm -rf .git : git init으로 잘못 초기화했을 경우에 .git 파일 지우기
$ git remote: 원격 저장소의 별칭(alias) 확인

profile
성장하는 개발자가 되고 싶어요

0개의 댓글