4 분 소요

저장소를 처음 만드는 경우

깃허브에 원격 저장소(repository) 만들기

  • 본인 깃허브 페이지의 Repository 탭에서 New 버튼을 누르면 저장소를 생성할 수 있다.

  • 저장소 이름을 적어주면 되는데(ex. FunGame), 컴퓨터에 있는 폴더랑 이름이 달라도 상관없다.

  • 저장소에 대한 설명파일도 있는게 좋다. “Add a README file”을 체크해 주자.

로컬 저장소 만들기

  • 내 컴퓨터 폴더 중 깃허브에 올리려는 폴더에 마우스 우클릭하여 git bash를 열어주고 다음과 같이 입력한다.
//로컬 저장소 생성
git init
  • ’.’으로 시작하는 폴더는 숨김처리되니 보이지 않지만, 여기서는 .git 파일이 생성된다.

로컬 저장소와 원격 저장소 연결

  • 원격 저장소의 주소를 이용해 두 저장소를 연결한다.

  • 주소는 깃허브 저장소에서 초록색 “Code”버튼을 누르면 보이는 HTTPS 탭에 적힌 주소를 사용하면 된다.

  • 잘 모르겠으면 저장소 페이지 주소에서 뒤에 .git을 붙여주자.

  • 즉 형식은 다음과 같다: https://github.com/아이디/저장소이름.git

//원격 저장소와 연결
git remote add origin [원격저장소 주소]

TIP 1

  • 작업하다보면 폴더에 원격 저장소가 연결되어 있는지 확인하고 싶을 때가 있다.
  • 이 경우 아래 명령어를 입력하면 연결된 저장소를 확인할 수 있다.
//연결된 원격 저장소 확인
git remote -v

TIP 2

  • 원격 저장소를 잘못 연결해서 다시 정하거나, 기존에 연결했던 것을 삭제하고 싶을 때가 있다.

  • 아래 명령어를 통해 원격 저장소와의 연결을 끊을 수 있다.

//기존 원격 저장소와의 연결 삭제
git remote rm origin

파일 업로드 준비

  • branch 개념은 따로 설명하진 않겠지만 대충 버전이라고 이해하면 된다.

  • 깃허브 저장소의 기본 branch 이름은 main이다. 따라서 파일도 main branch에 올려줘야 하는데,

  • 로컬 저장소에서는 branch 이름이 기본으로 master로 되어있다.

  • 원래 깃허브에서 기본 branch가 master였다가 노예제를 연상시킨다고 main으로 바뀌면서 이 차이가 생긴 것 같다.

  • 그러므로 먼저 branch 이름을 master에서 main으로 바꿔줘야 한다.

//브랜치 이름 바꾸기
git branch -m master main

TIP 3

  • 현재 내가 있는 branch를 확인하고 싶다면 아래 명령어를 이용하자.

  • 위에서 브랜치 이름을 바꾸기 전에는 master라고 뜰 것이고, 바꾼 뒤에는 main이라고 뜰 것이다.

//현재 브랜치 이름 확인
git branch

TIP 4

  • 저장소를 만들때마다 브랜치 이름을 변경하기 귀찮으니, 항상 main으로 이름짓도록 설정할 수 있다.

  • 아래 명령어에서 브랜치 이름을 main으로 하여 입력하면, 이제 git init을 할 때마다 브랜치 이름이 main이 된다.

//브랜치 기본(default)이름 설정
git config --global init.defaultBranch [브랜치 이름]
  • 이제 원격 저장소도 연결됐고, 브랜치도 main으로 바꿨으니 파일을 올리기만 하면 된다.

  • 하지만 그 전에 할 일이 하나 더 있다!

  • 지금 원격 저장소에는 로컬 저장소에 없는 README.md 파일이 있다. (저장소 만들 때 추가하지 않은 경우는 제외)

  • 따라서 이걸 먼저 로컬 저장소로 가져와줘야 한다.

  • 이렇게 원격 저장소에 있는 것을 로컬 저장소로 가져오는 것이 pull이다.

//(README.md가 있다면) 원격 저장소의 파일 가져오기
git pull origin [브랜치 이름]
  • main branch에서 가져올 것이기 때문에 git pull origin main 이라고 치면 된다.

  • 이걸 하고나면 내 컴퓨터에도 원격 저장소에 있던 README.md 파일이 생긴 것을 볼 수 있다.

  • 항상 파일을 올리기 전에는 pull을 해줘야 이후 작업이 정상적으로 처리된다.

파일 올리기

  • 이제 드디어 파일을 올리는 단계다.

  • 총 3단계로 이루어지는데, add → commit → push 순서이다.

  • 정확한 비유는 아니지만 쉽게 얘기하자면, add는 슈퍼에서 장바구니에 물건을 담는 거고, commit은 계산대에서 물건을 계산하는 거고, push는 구매한 물건을 들고 집, 즉 원격 저장소로 가는 거다. (그냥 느낌적인 설명이니 참고만 하자.)

  • 먼저 add를 해보자. 추가할 파일을 “add” 뒤에 적어주면 되는데, 모든 변경사항을 추가하려면 ‘.’을 적는다.

  • 나는 거의 항상 ‘.’를 사용한다.

//모든 변경사항을 올리는 경우
git add .
//특정한 파일만 올리는 경우
git add [파일/디렉토리]

TIP 5

  • add를 하기 전에, 현재 로컬 저장소에서 변경된 파일이 어떤 것들인지 확인해보는 것도 좋다.

  • 아래 명령어를 입력해보자.

//현재 버전 상태 확인
git status
  • 그럼 변경했거나 추가 혹은 삭제한 파일들의 목록이 빨간 글씨로 뜬다.

  • 빨간색으로 뜨는 것은 untracked files, 즉 추적되지 않은 파일이라는 것으로

  • 쉽게 얘기하면 장바구니에 아직 안 담았단 얘기다.

  • add를 해준 뒤에 다시 status를 확인해보면 추적이 되었다는 의미로 초록색으로 표시될 것이다.

  • 원격 저장소에 올릴 파일을 다 추가했다면 이제 commit을 할 차례다.

  • 물건을 담는 단계에서는 물건이 맘에 안들면 다시 진열대에 내려놓을 수 있으니 비교적 자유로웠다.

  • 하지만 한번 계산대에서 계산을 한 뒤에는, 마음이 바뀌면 번거롭게 결제 취소를 해야 하니 복잡하다.

  • 그러니 commit은 조금 신중할 필요가 있다.

//커밋 메시지 없이 커밋하기
git commit

//커밋 메시지를 적는 경우
git commit -m "commit message"
  • 깃허브 저장소에서 파일 옆에 회색으로 적힌 글씨를 볼 수 있는데, 이게 바로 커밋 메시지이다.

  • 커밋 메시지는 커밋이 어떤 변경사항을 담고 있는지 알려주는 글이니, 귀찮아도 작성해주는 것이 좋다.

  • git commit -m “Fix bugs” 이런 식으로 작성해주면 된다.

마지막 단계

  • 드디어 마지막 단계, 원격 저장소로 파일을 올릴 차례이다.

  • 로컬에 있는 것을 밀어서, 즉 push 해서 올려준다.

  • main 브랜치에 올릴 것이니 git push origin main이라고 치면 된다.

//로컬 저장소에서 원격 저장소로 올리기
git push origin [브랜치 이름]
  • 이제 깃허브 저장소로 가보면, 파일이 업로드 된 것을 볼 수 있다!

저장소가 이미 있는 경우

  • 이제 저장소도 만들었고 이미 업로드도 한 상태일 때 새로운 파일을 올려보자.

  • 로컬 저장소를 만들고 연결하는 등의 과정은 이번엔 필요없고,

  • 아래 명령어만 순서대로 입력하면 된다. (main 브랜치로 가정)

git pull origin main
git add .
git commit -m "commit message"
git push origin main
  • 참고로 첫 번째 줄의 pull은 해당하는 경우에만 하면 된다.

  • 예를 들어 다른 팀원이 main 브랜치에 뭔가 추가해서, 내 컴퓨터의 내용과 차이가 생겼을 수 있다. 이 경우 그 팀원이 만든 변경사항을 내 컴퓨터에도 반영하기 위해 pull을 먼저 해줘야 한다.

요약

//저장소 생성 및 연결
git init
git remote add origin [원격저장소 주소]
git branch -m master main

//파일 업로드
git pull origin main
git add .
git commit -m "commit message"
git push origin main

//추가적인 명령어
git remote -v
git remote rm origin
git branch
git config --global init.defaultBranch [브랜치 이름]
git status

태그:

카테고리:

업데이트:

댓글남기기