Basics of Git

김장군·2023년 8월 5일
0

GIT

목록 보기
1/1
post-thumbnail

소프트웨어 버전 매니지먼트 시스템 가운데 하나.

파일마다 리비전 히스토리를 쉽게 볼 수 있어서 파일 버전끼리 견주거나 파일의 어떤 버전으로 코드를 쉽게 되돌릴 수 있습니다.


Repositories

GIT 소프트웨어에는 repository들이 있고,

리포지터리에 들어 있는 파일마다 리비전 히스토리를 가지고 있습니다.

Repository에는 2가지 갈래가 있습니다.

  • 리모트 리포지터리: 서버에 두고 쓰는 리포지터리로, 여러 사람이 함께 공유하기 위한 리포지터리.
  • 로컬 리포지터리: 내 PC에서 쓰기 위한 리포지터리.

여러분의 로컬 리포지터리에서 코드를 업데이트하다가

공유를 해야 할 때 리모트 리포지터리에 업로드를 하면 됩니다.

거꾸로 다른 사람이 업로드한 파일을 로컬 리포지터리로 가져올 수 있습니다.

컴퓨터에 로컬 리포지터리를 만드는 방법은 2가지가 있습니다.
1. 새 리포지터리를 만드는 것.
2. 리모트 리포지터리를 본떠서 로컬 리포지터리를 만드는 것. 이때 리모트 리포지터리의 리비전 히스토리도 같이 가져옴.

2를 위해 아래 커맨드를 쓰면 됩니다.

git clone ${URI}

Commits

파일, 폴더를 새로 만들었거나 업데이트 콘텐츠를 리포지터리에 올리려면 먼저 commit을 해 줘야 합니다.

Commit을 하면, 바로 앞선 commit부터 현재까지의 모든 리비전 히스토리를 가지고 있는 새 commit이 만들어집니다.

Commits에는 알파벳, 넘버로 이루어진 40자리의 유니크한 이름이 붙습니다.

Commit마다 메시지가 반드시 있어야 합니다.

메시지는 심플하고 알기 쉽게 만드는 게 좋을 겁니다.

git commit -m ${message}

워크 트리와 인덱스

Git에서는 폴더를 워크 트리라고 합니다.

여러분은 워크 트리에 있는 어떤 파일들을 업데이트하겠죠?

그리고 이 업데이트한 파일들을 로컬 리포지터리에 업로드하기 위해 commit을 해야 합니다.

그런데 이 commit이라는 게 업데이트 콘텐츠들을 바로 로컬 리포지터리에 올리는 게 아닙니다.

워크 트리와 로컬 리포지터리 사이에는 인덱스라는 게 있습니다.

Commit은 인덱스에 스테이지 되어 있는 콘텐츠들을 로컬 리포지터리에 올리는 겁니다.

그래서 여러분은 인덱스에 먼저 스테이지시켜 주어야 하는 거예요.

  1. 워크 트리에서 로컬 리포지터리에 올리고 싶은 파일들을 인덱스에 스테이지.
  2. 인덱스에서 로컬 리포지터리로 commit.

워크 트리에서 인덱스에 스테이지를 하는 커맨드는 아래와 같습니다.

git add ${FILEPATH1} (${FILEPATH2})

워크 트리에서 파일 또는 폴더를 지우면서 인덱스에 스테이지를 하는 커맨드는 아래와 같습니다.

git rm ${FILEPATH1} (${FILEPATH2})    <-- 파일
git rm -r ${FILEPATH1} (${FILEPATH2}) <-- 폴더와 그 아래의 모든 폴더, 파일까지

조금 더 몇 가지 커맨드들을 알아봅시다.

Commit 할 때 a 옵션을 붙이면 새로 만들어진 파일 말고, 업데이트된 파일들을 찾아 인덱스에 스테이지시킵니다.

그 다음에 commit까지 하나의 커맨드로 이루어지는 거예요.

git commit -a -m ${message}

리모트 리포지터리에 있는 리비전 히스토리를 팀에 공유를 해야 할 때가 있겠죠.

git push (origin master)

git push = git push origin master입니다.

여기에서 말하는 origin은 리모트 리포지터리를 가리킵니다.

리모트 리포지터리에 있는 master 브랜치에 업로드하겠다는 얘기가 되겠죠.

또한 u 옵션을 붙이면 origin, master 파트를 fix,

git push 커맨드만 쳐도 git push origin master 커맨드로 알아듣게 됩니다.

git push -u origin master

거꾸로 리모트 리포지터리에서 업데이트된 리비전 히스토리를 가져오고 싶다면?

git pull origin svc

그냥 git pull 커맨드를 쓸 수도 있지만 지금은 이렇게 써서

리모트 리포지터리에 있는 svc 브랜치의 리비전 히스토리를 가져오는 걸로 알고 씁시다.

profile
Make impacts!

1개의 댓글

comment-user-thumbnail
2023년 8월 5일

많은 도움이 되었습니다, 감사합니다.

답글 달기