git은 소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템이다. git의 역할은 크게 3가지로 나뉜다. 백업과 협업, 변경사항을 확인하기 위해 주로 사용된다 지금부터 git의 기본적인 명령어부터 github을 이용한 동료와의 협업까지 다뤄보자.
목차
- git Repository
- git 영역
- 파일의 상태
- git 명령어
git repository
git의 저장소를 의미한다. 내 컴퓨터 내부의 저장소인 Local Repository와 github등 원격 온랑니 서버 상의 저장소인 Remote Repository를 통해 클라우드상에 파일이나 폴더를 저장한다.
git 영역
git의 영역은 온라인, 로컬 두 가지로 나뉜다. 깃헙과 같은 온라인 저장소와, 로컬에 위치한 work space, staging area, Local repository 세 가지가 있다.
- work space: git init 명령어를 입력한 후, 어떠한 git 명령어도 입력하지 않은 상태의 파일들이 존재하는 영역
- staging area : commit 될 내용들이 모여있는 영역
- Local repository: 수정된 파일을 저장하고 버전을 기록함 (git commit)
파일의 상태
git에 의해 파일의 상태가 추적되는지 여부에 따라 두 가지 상태로 나뉜다. (untracked에서 tracked로의 이동은 commit 명령어를 통해 이뤄진다.)
Untracked
Tracked (Unmodified, Modified, Staged)
-
Unmodified : 파일의 수정이 Git에 의해 감지되지 않은 상태
-
Modified : 파일의 수정이 Git에 의해 감지된 상태
-
Staged : 파일이 Staging area에 존재하는 상태 (git add로 이동가능)
git 명령어
Fork
- 프로젝트에 contribute하고자 할 때, 해당 프로젝트 원격 저장소를 내 원격 저장소(remote repository- github)로 가지고 와야한다. 이때 사용하는 명령어가 fork다.
Clone
- remote repository에 fork해둔 코드를 내 컴퓨터의 local repository로 가져온다.
- git clone을 사용하여 Remote repository를 로컬로 복제하면 .git이 자동으로 만들어지므로 별도로 git init을 입력할 필요가 없다.
commit
- Local repository에 파일을 저장하는 행위를 가리키며, 파일을 Local repository에 저장함과 동시에 파일의 버전을 기록합니다.
git commit -m "변경내용 한줄로 간단하게"
push
- local repository에 기록해 놓은 내용을 remote repository에 올려놓는다.
remote
- Remote repository와 Local repository를 연결
- 연결된 내역이 있는지 확인: git remote --v
- git remote add origin 복사한원격저장소_URL
방금 commit한 기록을 취소하고 에러를 수정하기 원할 때
remote repository에 업로드되지 않고 local repository에만 commit해 놓은 기록이라면 reset 명령어를 통해서 커밋 내용을 취소할 수 있다.
- git reset HEAD^
- git reset --hard vs --soft