728x90
Git
Linux OS를 만든 리누스 토르발즈가 만든 프로그램이다. Linux는 오픈 소스 방식의 운영체제로, 세상에 등장한 이후부터 약 26년 간 1만 명이 넘는 개발자들에 의해 2천만 줄이 넘는 소스코드가 작성되었다. Linux의 개발자인 리누스 토르발즈는 Linux의 발전에 있어 기존의 오픈 소스 방식에 큰 불편함을 느끼고 있었다. 그는 이러한 불편함을 줄이고 작업 환경을 개선하기 위해 Git이라는 프로그램을 출시한다.
GIt의 기능
Git은 파일을 관리해주는 프로그램이며 크게 버전관리, 백업, 협업(공유 및 합병)의 기능을 가지고 있다.
Github
Git이 로컬에서 버전을 관리해주는 프로그램이라면 Github는 원격 저장소의 기능을 제공해주는 서비스 중 하나이다. 쉽게 이야기하면, Git이 설치되어있는 클라우드 저장소로 Github를 통해 온라인에서 버전 관리 및 백업, 협업자들과의 공유 기능을 가능하게 한다.
Github의 워크플로우
Fork
예를 들면, Github 내의 A라는 프로젝트에 Contribute를 하려고 한다. 이때 자신의 계정(Origin Repasitory)에 A 프로젝트의 Remote Repository를 가지고 오는 기능이 Fork이다.
Git Clone <레파지토리 주소>
원격 저장소의 파일을 로컬 저장소로 복사하는 기능
git status
로컬 저장소에 복사된 디렉토리의 commit 전 상태를 표시한다. staging area와 untracked list를 확인할 수 있다.
git restore
add, tracked 된 내용을 취소하는 기능
참고로 git 2.23부터 git checkout -- <파일명>은 git restore <파일명>으로, git reset HEAD <파일명>은 git restore --staged <파일명>으로 변경되었다.
git status를 입력하면 1차적으로 변경 여부를 확인할 수 있다. 그리고 변경 사항이 staging area에 반영되었는지 색을 통해 확인한다. 빨간색은 변경 사항이 반영되지 않았다는 의미이므로, git add <파일명>이나 git add .(전체 추가)로 반영할 수 있다. 또한, 변경 사항을 git restore <파일명>으로 취소할 수 있다.
초록색은 변경사항이 이미 staging area에 반영되었다는 의미이며, 최종적으로 commit을 통해 로컬 저장소에도 변경사항을 반영할 수 있다. 또한, git restore --staged <파일명>으로 unstage 할 수 있다.
git add
Work space에서 staging area로 옮기는 기능
git commit
staging area에서 로컬 저장소로 옮기는 기능으로, 언제, 누가, 어떻게, 어떤 사항을 변경했는지 기록할 수 있다. git commit -m "메시지 내용"이 기본 명령어이며, 한 번 터미널에서 commit을 하면 추가 변경 사항이 있을 때에 다시 add를 할 필요 없이 commit -am "메시지 내용"으로 add와 commit을 한 번에 할 수 있다.
git reset
Commit을 취소하는 기능
--soft : commit 하기 전인 staging area로 돌아감
--mixed(default) : 기본값이며, add하기 전인 work space로 돌아감
--hard : commit된 파일 중에 tracked 된 파일을 work space에서 삭제
HEAD_<숫자> : 숫자만큼 commit 취소
HEAD^ : 가장 최근의 commit을 취소
git log
현재까지 commit된 내역을 터미널 창에서 확인 가능, 'q'를 누르면 log창 종료.
Pull Request
내가 Push한 변경 사항을 다른 사람들에게 알림
git init
내 컴퓨터에 직접 만든 디렉터리를 버전 관리하기 위해 Git Repository로 변환하는 기능
git remote add origin <Repository 주소>
나의 로컬 저장소와 나의 origin 저장소를 연결시킴
git remote add <상대방 네임 (ex. pair)> <Repository 주소>
협업자의 로컬 저장소와 나의 origin 저장소를 연결시킴
git push <origin> <branch 명>
commit 된 brach의 변경 사항을 origin repository에 업로드함
git pull <협업자 네이밍> <branch 명>
현재 로컬 저장소에 협업자의 Remote Repository를 가져옴
git clone과 git pull의 차이
※ git clone은 리모트 설정을 자동으로 해주기 때문에 맨 처음 다운로드를 할 때 사용하고, git pull은 리모트 설정이 이미 되어 있는 경우에 업데이트 사항 등을 다운로드 할 떄 사용한다.
git remote -v
현재 로컬 저장소와 연결된 모든 Remote Repository 목록을 확인
(fetch) : pull 연결 주소
(push) : push 연결 주소
728x90
'넓고 얕은 CS 지식' 카테고리의 다른 글
디자인 패턴 - 싱글톤 패턴(Singleton Pattern) 1분 요약 정리(스프링에서의 싱글톤 패턴) (0) | 2023.03.04 |
---|---|
컨텍스트 스위칭 & PCB 10초 요약 정리 (0) | 2023.02.18 |
리눅스 터미널 (0) | 2022.08.26 |
프론트엔드와 백엔드의 차이 (0) | 2022.08.22 |
웹 클라이언트와 웹 서버 (0) | 2022.08.22 |