개발 블로그
[개인공부/github] GitHub 용어 정리/공부 본문
내 github를 관리해야 하는데 제대로 알지 못하고 대충 아는 것 같아서 내용 정리 겸 github에 관해 정리를 해보려고 한다.
git이란?
git은 형상 관리 도구 중 하나로, 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다. 사용자는 원격 저장소에서 변경 사항에 대한 동작들을 수행한다.
github란?
분산 버전 관리 툴인 git을 사용하는 프로젝트를 지원하는 웹호스팅 서비스이다.
github 이용에 필요한 용어 정리
- repository: 저장소. 저장소는 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장한다. 작업자가 변경한 모든 히스토리를 확인할 수 있다.
- local repository: 본인 컴퓨터에 저장된 로컬버전의 저장소로 개인 전용 저장소이다.
- remote repository: 내 컴퓨터가 아닌 원격 서버에 저장되는 저장소로 여러명이 공유하기 위한 저장소이다.
- working tree: 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점이다.
- staging area: 저장소에 커밋하기 전에 커밋을 준비하는 위치이다.
- commit: 파일을 추가, 변경한 내용을 확정하고 저장소에 저장하는 작업.
- head: 현재 작업중인 branch를 가리킨다.
- branch: 가지 또는 분기점으로, 작업을 할때에 현재 상태를 복사하여 branch에서 작업을 한 후에 완전하다 싶을 때 merge를 하여 작업을 한다. 저장소의 공간에서 독립적으로 어떤 작업을 하기 위한 공간을 만든다.
- merge: 다른 branch의 내용을 현재 branch로 가져와 합치는 작업을 의미한다.
- push: 추가, 변경한 내용을 원격 저장소에 업로드하는 작업
- pull: 파일을 다운로드하는 작업

git 주요 명령어 정리
git init
깃 저장소를 초기화한다. 저장소나 디렉토리 안에서 이 명령을 실행하기 전까지는 그냥 일반 폴더이다. 이것을 입력한 후에야 추가적인 깃 명령어들을 줄 수 있다.
git status
저장소 상태를 체크. 어떤 화일이 저장소 안에 있는지, 커밋이 필요한 변경사항이 있는지, 현재 저장소의 어떤 브랜치에서 작업하고 있는지 등을 볼 수 있다.
git add
이 명령이 저장소에 새 화일들을 추가하진 않는다. 대신, 깃이 새 화일들을 지켜보게 한다. 화일을 추가하면, 깃의 저장소 스냅샷에 포함된다.
git commit
어떤 변경사항이라도 만든 후, 저장소의 “스냅샷”을 찍기 위해 이것을 입력한다. 보통 “git commit -m “Message hear.” 형식으로 사용한다. -m은 명령어의 그 다음 부분을 메시지로 읽어야 한다는 것을 말한다.
git branch
여러 협업자와 작업하고 자신만의 변경을 원한다? 이 명령어는 새로운 브랜치를 만들고, 자신만의 변경사항과 화일 추가 등의 커밋 타임라인을 만든다. 당신의 제목이 명령어 다음에 온다. 새 브랜치를 “cats”로 부르고 싶으면, git branch cats를 타이핑한다.
git checkout
글자 그대로, 현재 위치하고 있지 않은 저장소를 “체크아웃”할 수 있다. 이것은 체크하길 원하는 저장소로 옮겨가게 해주는 탐색 명령이다. master 브랜치를 들여다 보고 싶으면, git checkout master를 사용할 수 있고, git checkout cats로 또 다른 브랜치를 들여다 볼 수 있다.
git merge
브랜치에서 작업을 끝내고, 모든 협업자가 볼 수 있는 master 브랜치로 병합할 수 있다. git merge cats는 “cats” 브랜치에서 만든 모든 변경사항을 master로 추가한다.
git push
로컬 컴퓨터에서 작업하고 당신의 커밋을 깃허브에서 온라인으로도 볼 수 있기를 원한다면, 이 명령어로 깃허브에 변경사항을 “push”한다.
git pull
로컬 컴퓨터에서 작업할 때, 작업하고 있는 저장소의 최신 버전을 원하면, 이 명령어로 깃허브로부터 변경사항을 다운로드한다(“pull”).
'개인 공부' 카테고리의 다른 글
[unity]유니티 사용 방법/용어 정리 (0) | 2022.12.29 |
---|---|
[개인공부/json] json 개념과 사용 방법 (0) | 2022.11.29 |
[개인공부]아나콘다란/가상환경 만들기 (0) | 2022.11.15 |
[오류 해결]ERROR: Could not find a version that satisfies the requirement tensorflow (from version: none) (0) | 2022.11.15 |
[개인공부/github] Git bash란/폴더 업로드하기 (0) | 2022.11.11 |