Lined Notebook

[Git] Git fork를 이용한 git 기초

by HeshAlgo

Git

1. Git 이란?

- 로컬에서 관리되는 버전 관리 시스템 (VCS : Version Control System)

- 깃에서 버전이란 문서를 수정하고 저장할 때마다 생기는 파일

 

2. Git의 세 가지 상태

1) Working tree

- 내가 코드작업을 하는 공간

- 즉, 변경사항이 생기는곳으로 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 상태

 

2) Staging

- 버전이 될 후보들이 올라오는 공간

- 즉, 수정할 파일을 곧 커밋할것이라고 표시

 

3) Repository

- 데이터가 로컬 데이터베이스에 안전하게 저장

Git의 3가지 상태

Working Tree에서 파일을 수정하면 Staging에 파일을 대기시킵니다. 스테이징에서 존재하는 파일 중 Repository에 올리고 싶은 파일만 선택해 커밋으로 Git 디렉토리에 영구적인 스냅샷으로 저장이 됩니다.

 

3. 저장소 생성 방법 (Gitfork 활용)

1) Github에 저장소 생성

자신의 Github페이지의 오른쪽 상단에 +모양을 클릭하시면 New repository가 있는 것을 보실 수 있습니다.

아래와 같이 New repository를 클릭하게 되면

 

이렇게 Create a new repository페이지가 생성되고 오른쪽과 같이 추가시켜주면 됩니다.

 

그러면 이렇게 아래와 같이 나만의 저장소를 생성된 모습을 보실 수 있게 됩니다. 그러면 이제 Git fork에도 이 생성된 저장소 주소를 복사해 추가하는 작업을 해보겠습니다.

Repository 생성 완료

 

2) Git fork에 저장

초록색 버튼의 Code를 클릭하시면 위 그림과 같이 Clone이라는 하나의 창이 생성되고 주소가 생성되는 모습이 보이실 것입니다. 그러면 주소 옆의 버튼을 클릭하면 적혀있는 주소를 복사하실 수 있으실 것입니다.

 

Git Fork로 돌아와 File -> Clone을 클릭하시면 

 

이렇게 자동적으로 주소가 들어가지게 됩니다.

Parent Directory는 가장 최상위 디렉토리가 될 것이므로 자신이 원하는 폴더의 디렉토리로 지정시키면 되겠습니다.

Git fork로 복제 완료

4. Tracked와 Untracked

-  작업트리에는 크게 Tracked(관리대상O)와 Untracked(관리대상X)로 나눈다.

 

1) Tracked

-> 이미 스냅샷에 포함돼 있던 파일

-> Unmodified

-> Modified

-> Staged

위 상태 중 하나이다.

 

2) Untracked

-> 스냅샷에도 Staging Area에도 포함되지 않는 파일

 

처음 저장소를 Clone 하면 모든 파일은 Tracked이면서 Unmodified 상태이다. 파일을 Checkout 하고 나서 아무것도 수정하지 않았기 때문이다.

 

※ 스냅샷이란??

- 특정 시점에서 파일, 폴더 또는 워크스페이스의 상태를 의미. 즉, 특정 시점에 어떤 파일에 어떤 내용이 기록되어 있었는지, 폴더 구조는 어떠했는지, 어떤 파일이 존재했는지 등 저장소의 모든 정보를 확인. Git에서는 새로운 버전을 기록하기 위한 명령인 Commit을 실행하면 스냅샷이 저장된다.

 

Tip) git 명령어

$ git add : working tree -> staging

# 좀더 길고 상세하게 커밋 메세지를 남기고 싶을경우 git commit만 실행

$ git commit -m "commit message" : staging -> repository

 

$ git init : git을 시작하겠다는 명령어

 

$ git status : 버전관리가 되고있는 해당 폴더의 상태를 알려달라는 명령어

 

$ git log : git 로그 확인

 

$ git config --list : 현재 git 설정 상태 확인

 

 

출처

1. Git & GitHub교육 - 신승엽 강사님 

2. https://git-scm.com

 

Git

 

git-scm.com

 

'Git' 카테고리의 다른 글

[Git] diff와 revert 사용하기  (0) 2022.09.03
[Git] Reset 명령어 사용하기  (0) 2022.08.29
[Git] Git fork를 이용한 Branch  (0) 2021.02.04

블로그의 정보

꾸준히 공부하는 개발 노트

HeshAlgo

활동하기