HEAD란 무엇인가? Git을 다루다보면 git log를 찍었을 때 HEAD가 특정 커밋에 찍혀있는 것을 볼 수 있다. 모든 브랜치에는 HEAD 값이 존재하는데 HEAD란 해당 브랜치의 마지막 커밋을 뜻한다. 따라서 아래와 같이 HEAD가 특정 커밋에 찍혀 있을 경우 해당 브랜치의 마지막 커밋이 해당 부분이라는 것을 알 수 있게 된다. 즉, HEAD는 특정 브랜치의 마지막 커밋에 대한 포인터이다. HEAD -> [branch name] 다른 브랜치의 HEAD확인하기 위의 master branch에서 다음 명령어를 이용해 feature-layout이라는 새로운 브랜치를 만들었다고 해보자. git checkout -b "feature-layout" 브랜치를 새로 만들게 되면 이전 master의 commit들..
GIT
.gitignore 파일이란? .gitignore 파일은 Git의 root 디렉토리에 저장되어, Git Repository나 Staging Area에 추가되지 말아야 하는(무시되어야 하는) 폴더나 파일을 정의하는 파일이다. .gitignore에 정의된 파일은 Staging Area에 올라가지 않기 때문에 tracking 되지 않는다. 따라서 git status 를 이용했을 때 보이지 않는다. .gitignore 이용해 git에 추가되지 말아야 할 파일 정의하기 .gitignore 이용해 폴더 전체 무시하기 다음 줄을 추가함으로써 특정 폴더에 있는 전체 파일을 무시할 수 있다. [folder name]/ 예를 들어 Kotlin이라는 폴더가 있다고 했을 때 이 내부에 있는 파일을 모두 무시하기 위해서는 아래..
Git의 세가지 영역 : Working Directroy, Staging Area, Repository Git은 Working Directroy, Staging Area, Repository 세가지 영역으로 이루어져 있다. Working Directory는 작업 공간으로 아직 Git에 기록될 준비가 되지 않은 파일들이 위치하는 공간이다. Staging Area는 대기 공간으로 Git에 기록될 준비가 된 파일들이 위치하는 공간이다. 마지막으로 Repository는 Git에 기록된 파일들이 위치하는 공간이다. 위 세가지 영역은 긴밀히 협력하면서 Git을 구성한다. git init가 동작하는 방식 git init은 Git의 세가지 영역과 Git을 구성하기 위한 파일과 메타데이터를 만들어낸다. 아무것도 없는 폴..
Git에 user name과 user email을 설정하는 방법 Git에 user name과 user email은 config에 설정한다. config에 설정된 user name과 user email값은 파일을 관리할 때 코드를 작성한 주체가 누구인지 이메일이 무엇인지에 대해 알기 위해 사용된다. config는 global 모드와 local 모드로 설정이 가능하다. global 모드로 설정하면 컴퓨터 내의 모든 git의 관리를 받는 폴더에 대해 값이 설정되는 것이며, local 설정은 현재 디렉터리에만 값을 설정하는 것이다. user name 설정 방법 글로벌 설정 git config --global user.name "[user name]" 로컬 설정 config의 default 옵션이 --local이..
Git과 Github의 차이점 많은 사람들이 Git과 Github이 같은 것이라고 생각한다. 하지만 Git은 Github과 동일하면서 다르다. Git은 개인 컴퓨터에서 돌아가는 Version Control System이다. Git을 사용하기 위해서는 개인 계정을 등록할 필요도 없으며 인터넷을 연결할 필요도 없다. 반대로 Github은 Github라 불리는 회사에서 서비스하고 있는 서버에 올라간 Git 이기 때문에 사용하기 위해 개인 계정을 등록해야 하며, 인터넷에 연결되어야 사용할 수 있다. 즉, Github는 Git 소프트웨어를 지원하는 일종의 클라우드 서비스이다. 우리가 휴대폰이나 컴퓨터에서 클라우드를 사용할 때 우리의 기기에 파일을 저장해놓으면 우리의 기기에서 사용하기 위해서는 계정이나 인터넷이 필..