Sky Archive

SCM/Git

[Git] Git 관련 설명

KingPork 2021. 7. 2. 09:31

 

 

Clone

- 저장소를 로컬 저장소로 복사하는 기능입니다.

  GitLab 프로젝트마다 존재하는 저장소를 복사합니다.

  Git에서는 두 개의 장소 개념이 있는데, Clone 으로 저장소를 복사하게 되면 원격 저장소

  (remote)와 로컬 저장소 (local) 관계가 됩니다.

 

Remote repository

 - 원격 저장소.

 

Local repository  

 - 로컬 저장소.

   원격 저장소의 연결정보, 원격저장소의 브랜치 정보(Remote Tracking), 태그 정보,

   로컬 저장소의 브랜치 정보 등 여러 가지 정보를 가지고 있습니다.

 

Checkout

 - local branches 영역에 있는 브랜치를 working tree로 가져오는 명령어입니다.

   remote tracking branches 영역에 있는 브랜치를 checkout 할 때도 사용하며,

   local branches 영역을 거쳐서 최종적으로 working tree로 가져오게 됩니다.

   eclipse > team > Switch to 명령어와 동일

 

Working tree

 - 작업공간.

   eclipse에서 보이는 부분이며 실제 변경 작업이 이루어지는 영역입니다.

   변경사항은 add to index 명령어를 통해 staging area를 거쳐서 local branches에 있는

   브랜치에 commit 되어야 함.

 

History

 - 커밋 이력들을 확인합니다.

 

Staging area, Commit, Stash

 - working tree에 있는 브랜치의 변경내용 중 로컬 브랜치에 저장(commit) 하기 위하여

   구분해놓은 가상영역으로 index area라고 부르기도 합니다.

   add to index 명령어를 통해 staging area에 저장되며 커밋을 통해 로컬 브랜치에

   저장됩니다.

   

Squash

 - Squash 기능으로 여러 개의 커밋을 하나의 커밋으로 만듭니다.

 

Revert, Reset

 - 특정 커밋의 변경 내용을 원복 하거나 특정 커밋 이후의 변경 내용을 모두 제거할 수 있다.

 

Patch

 - 변경내용을 파일 또는 Clipboard로 저장, 파일로 저장하여 작업 내용을 다른 사람에게

   공유할 수 있다.

 

Commit

 - 변경내용 자체를 지칭하는 용어.

 

Push

 - local branches 영역에 있는 브랜치의 변경내용(commit)들을 원격 저장소의 브랜치에

   저장한다. 원격 저장소의 브랜치에 push 하려면 'developer' 이상의 권한이 필요합니다.

   delete push 원격저장소의 브랜치를 삭제할 때 사용하며 force push는 로컬 저장소의

   브랜치로 원격 저장소의 브랜치를 덮어쓸 때 사용합니다.

   protected 브랜치는 force push와 delete push를 할 수 없습니다.

   원격 저장소 브랜치의 모든 커밋이 로컬 브랜치에 있는 상태에서만 push 할 수 있습니다.

 

Fetch

 - 원격 저장소에 있는 브랜치의 최신 변경사항을 로컬 저장소의 remote tracking branches

   영역에 있는 브랜치에 적용하는 git 명령어입니다.

 

Pull

 - fetch와 merge를 한 번에 실행하는 명령어입니다. pull = fetch + merge

   fetch 기능으로 원격 저장소 브랜치의 변경사항이 remote tracking branches 영역에

   있는 브랜치에 저장되고 remote tracking branches 영역에 있는 브랜치의 변경사항을

   local branches 영역에 있는 브랜치에 merge 됩니다.

 

Merge

 - 두 개의 브랜치를 병합 기능입니다.

   merge : 두 브랜치의 커밋들을 시간 순서대로 재 배열하여 병합

   rebase : 하나의 브랜치를 베이스로 하여 병합

   cherry-pick : 하나의 커밋을 브랜치에 적용

 

'SCM > Git' 카테고리의 다른 글

[Git] Commit Message Convention(커밋 메시지 컨벤션)  (0) 2021.12.21