소프트웨어 버전 매니지먼트 시스템 가운데 하나.
파일마다 리비전 히스토리를 쉽게 볼 수 있어서 파일 버전끼리 견주거나 파일의 어떤 버전으로 코드를 쉽게 되돌릴 수 있습니다.
GIT 소프트웨어에는 repository들이 있고,
리포지터리에 들어 있는 파일마다 리비전 히스토리를 가지고 있습니다.
Repository에는 2가지 갈래가 있습니다.
여러분의 로컬 리포지터리에서 코드를 업데이트하다가
공유를 해야 할 때 리모트 리포지터리에 업로드를 하면 됩니다.
거꾸로 다른 사람이 업로드한 파일을 로컬 리포지터리로 가져올 수 있습니다.
컴퓨터에 로컬 리포지터리를 만드는 방법은 2가지가 있습니다.
1. 새 리포지터리를 만드는 것.
2. 리모트 리포지터리를 본떠서 로컬 리포지터리를 만드는 것. 이때 리모트 리포지터리의 리비전 히스토리도 같이 가져옴.
2를 위해 아래 커맨드를 쓰면 됩니다.
git clone ${URI}
파일, 폴더를 새로 만들었거나 업데이트 콘텐츠를 리포지터리에 올리려면 먼저 commit을 해 줘야 합니다.
Commit을 하면, 바로 앞선 commit부터 현재까지의 모든 리비전 히스토리를 가지고 있는 새 commit이 만들어집니다.
Commits에는 알파벳, 넘버로 이루어진 40자리의 유니크한 이름이 붙습니다.
Commit마다 메시지가 반드시 있어야 합니다.
메시지는 심플하고 알기 쉽게 만드는 게 좋을 겁니다.
git commit -m ${message}
Git에서는 폴더를 워크 트리라고 합니다.
여러분은 워크 트리에 있는 어떤 파일들을 업데이트하겠죠?
그리고 이 업데이트한 파일들을 로컬 리포지터리에 업로드하기 위해 commit을 해야 합니다.
그런데 이 commit이라는 게 업데이트 콘텐츠들을 바로 로컬 리포지터리에 올리는 게 아닙니다.
워크 트리와 로컬 리포지터리 사이에는 인덱스라는 게 있습니다.
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 브랜치의 리비전 히스토리를 가져오는 걸로 알고 씁시다.
많은 도움이 되었습니다, 감사합니다.