오늘 공부한 것은 바로바로 깃과 깃허브다
그 전까지 깃과 깃허브의 차이도 잘 몰랐고, 깃을 사용하는 방법도 야매로 배워서 레포지터리에 그저 공부한 흔적을 남기곤 했었는데 오늘에서야 비로소! 깃 사용법을 깨우쳤다! ( >>>> 이래놓고 막상 또 협업하면 어버버할 지도... )
생각보다 그렇게 복잡하지 않더라구!! 그러니 겁먹지 말자!
여하튼 깃은!! 협업을 하려면 필수적으로 알아야 하는 지식인 만큼... 자세하게 살펴보쟘..!
Git?
깃은 분산형 버전 관리 시스템(여러 리모트 저장소를 만들어 둘 수 있음)이다.
소스 코드들을 통째로 복제해 저장하는데 이때 소스 코드들의 변화를 시간에 따라 기록하고, 특정 시간의 소스 코드를 다시 불러와 작업을 할 수 있게 해준다.
쉽게 말하자면 1월 2일에 1차 버전, 1월 3일에는 2차 버전의 작업물을 냈다고 한다면 우리는 시간이 지나고 작업물을 계속 수정할지라도 깃을 통해 1차 버전의 파일을 가져와 쉽게 작업할 수 있다는 뜻이다.
그래서 후에 작업물을 통째로 날려도 복원이 쉽고, 누가 어느 시점에 어떤 부분을 변경했는지 체크가 용이하다.
깃은 CLI(Command Line Interface) 또는 GUI(Graphic User Interface)를 통해 사용할 수 있는데
나는 맥의 터미널이라는 CLI 프로그램을 통해 깃을 사용하는 법을 다뤄보려고 한다.
Git 사용법
우선, 한 눈에 보기 쉽게 도식화 했다.
쉽게 이해하기 위해 직접 프로젝트를 생성 후 깃을 통해 버전을 관리해보자!
(상황설명)
1. Mac Desktop에 'Story'라는 폴더를 만들고 깃으로 버전을 관리하려고 한다.
➜ ~ git:(master) ✗ cd Desktop
➜ Desktop git:(master) ✗ mkdir Story
➜ Desktop git:(master) ✗ cd Story
2. chapter1.txt 텍스트 파일을 만들어주고 내용 작성한다.
➜ Story git:(master) ✗ touch chapter1.txt
➜ Story git:(master) ✗ open chapter1.txt
3. git init을 통해 깃 저장소를 초기화해준다.
➜ Story git:(master) ✗ git init
/Users/ruheekim/Desktop/Story/.git/ 안의 빈 깃 저장소를 다시 초기화했습니다
4. ls -a를 입력해주면 숨겨져있는 파일 항목들까지 확인할 수 있는데 .git이 생성된 것을 볼 수 있다.
➜ Story git:(master) ✗ ls -a
. .. .git chapter1.txt
5. git status는 파일의 상태를 확인하기 위한 명령어다.
현재 chapter1.txt 파일이 Working Directory에 있고(아직 이 파일은 Staging Area에 있지 않음)
tracking 되지 않았다는 걸 알려준다.
➜ Story git:(master) ✗ git status
현재 브랜치 master
아직 커밋이 없습니다
추적하지 않는 파일:
(커밋할 사항에 포함하려면 "git add <파일>..."을 사용하십시오)
chapter1.txt
커밋할 사항을 추가하지 않았지만 추적하지 않는 파일이 있습니다 (추적하려면 "git
add"를 사용하십시오)
6. git add를 통해 Staging Area에 추가할 수 있고, 파일의 변화를 tracking 할 수 있다.
- git add 파일명 (= 특정 파일만 추가)
- git add . (= 경로 내의 모든 파일을 추가)
➜ Story git:(master) ✗ git add chapter1.txt
➜ Story git:(master) ✗ git status
현재 브랜치 master
아직 커밋이 없습니다
커밋할 변경 사항:
(스테이지 해제하려면 "git rm --cached <파일>..."을 사용하십시오)
새 파일: chapter1.txt
git add 후 git status를 통해 파일이 tracking된 것을 확인할 수 있다.
7. git commit -m "커밋 메세지"
- 커밋 메세지는 구체적으로 작성하는 것이 좋고, present형으로 작성하는 것이 일반적인 관습이다.
➜ Story git:(master) ✗ git commit -m "Complete Chapter 1"
[master (최상위-커밋) 03ebd92] Complete Chapter 1
1 file changed, 1 insertion(+)
create mode 100644 chapter1.txt
8. git log로 누가 언제 커밋했는지 확인할 수 있다.
➜ Story git:(master) git log
commit 03ebd927eff99c4e294f4f0cde484060 (HEAD -> master)
Author: heerucan <email@email.com>
Date: Sun Jan 3 10:44:52 2021 +0900
Complete Chapter 1
* git diff ?
- 만약 chapter1.txt의 내용을 변경 후 어떤 점이 달라졌는지 확인하기 위해서는 git diff 명령어를 사용한다.
➜ Story git:(master) git diff
diff --git a/chapter1.txt b/chapter1.txt
index a1b67d5..d931ad1 100644
--- a/chapter1.txt
+++ b/chapter1.txt
@@ -1 +1 @@
-chapter1. There is an apple. // 이 부분이 기존 내용
\ No newline at end of file
+chapter1. There is an apple.amdlkjsfjal // 이 부분이 수정 이후 내용
* git checkout 파일명
- 그리고 변경하기 이전으로 되돌리기 위해서는 git checkout chapter1.txt를 해주면 된다.
➜ Story git:(master) ✗ git checkout chapter1.txt
Updated 1 path from the index
* 왜 Working Directory에서 바로 Local Repo로 안가고 중간에 Staging Area를 거칠까?
-> 그 이유는 바로 때때로 모든 파일을 다 커밋하고 싶지 않을 수 있기 때문이다.
그 다음은 깃허브 레포지터리에 푸쉬하는 방법~!!!
9. 먼저 깃허브 계정을 만들고
우상단의 + 버튼을 눌러주고 드롭박스에서 New repository를 선택한다.
Repository Name을 설정하고 Create Repository를 누르면 레포 생성!
(기타 설명과 Public으로 할 것인지 Private으로 할 건지,
그리고 Add a README file은 알아서 잘,, 상황에 따라 스스로 판단해서 선택하면 된다..)
생성 완료 후 화면은 아래와 같다.
우리는 커맨드 라인 툴 즉, 터미널로 해줄 거기 때문에
해당 레포지터리의 주소를 복사해온다. github.com/heerucan/Git-Prac3.git 이 부분을 복사!!
10. git remote add origin 깃허브레포주소
- 로컬 저장소에 있는 파일들을 깃허브의 원격 저장소로 올려주겠다는 뜻이다.
➜ Story git:(master) git remote add origin https://github.com/heerucan/Git-Prac3.git
11. git push -u origin master
로컬 저장소를 원격 저장소로 업로드한다.
- origin : 원격 저장소의 이름
- master : 브랜치 이름 = default/main branch
➜ Story git:(master) git push -u origin master
깃허브를 새로고침하면 우리가 로컬 저장소에서 작업했던 파일들이 업로드된 것을 확인할 수 있다.
'⭐️ 개발 > Git' 카테고리의 다른 글
[Git] Git 명령어 모음 (0) | 2022.10.14 |
---|---|
[Git] Shell명령어 모음 (0) | 2022.10.14 |
[Git] 깃 사용법 정리(3) - .gitignore (0) | 2021.01.03 |
[Git] 깃 사용법 정리(2) - Fork와 Pull Request (0) | 2021.01.03 |
[Git] Github 페이지 만들기 (0) | 2020.08.23 |