GIT

Git Git은 소스코드의 변경을 관리하기 위해 만들어진 툴으로 VCS(Version Control System)라고도 불린다. 말 그대로 코드의 버전을 관리하는 시스템이다. Git은 코드를 관리하기 위해 다양한 기능을 제공한다. Commit이라 불리는 Snapshot을 생성하거나 Branch를 사용해 서로 다른 code version을 만들어낼 수 있고, checkout을 사용해 Branch간에 전환을 할 수 있다. 즉, Git으로 코드를 망가트리지 않고 특정 Code 스냅샷으로 이동하거나 할 수 있어 코드의 변경을 관리해야 될 때 주로 사용된다. Github Github는 Cloud 기반 Git 저장소를 제공하는 서비스이다. GitHub을 사용하면 로컬 Git을 Cloud에 보관할 수 있다. 이를 통..
· CI, CD/Git
git config 파일의 위치 global config 파일의 위치 git의 global config 파일은 ~/.gitconfig 에 있다. git의 local config 파일의 위치 git의 local config 파일은 .git/config 에 있다. git config 파일의 구성 git config 파일은 두가지 계층으로 이루어져 있다. [ ] 으로 감싸진 카테고리와 = 왼쪽에 있는 파라미터와 오른쪽에 있는 파라미터에 대응되는 값이다. 예를 들어 아래에는 core 카테고리 안에 repositoryformatversion, filemode, bare, logallrefupdates, ignorecase, precomposeunicode 파라미터가 있다. git은 조작 명령이 들어올 때 이 co..
· CI, CD/Git
reflog란? reflog란 git에서 가리키는 referenced commit이 변경된 내역이다. reflog를 기록하는 것은 대표적으로 HEAD와 branch 두가지이다. HEAD의 reflog HEAD의 reflog 경우 새로운 커밋이 생기거나, branch가 switch 될 때마다 해당 브랜치의 가장 최신 커밋으로 reference가 바뀌게 된다. 예를 들어 master 브랜치에 test, test2란 커밋을 만들고, feature-branch 브랜치를 새로 만든다음 feature-branch에서 new commit 커밋을 새로 만들면 다음과 같이 reflog가 쌓이게 된다. $ git reflog show HEAD d42e22f (HEAD -> feature-branch) HEAD@{0}: c..
· CI, CD/Git
Git의 기본 저장 단위 Commit Commit은 Git의 기본 저장 단위이다. 우리는 Commit을 파일들에 대한 스냅샷이라고도 부르며, Commit은 Commit을 찍은 시간의 파일들의 상태에 대해 저장한다. Commit은은 tree, parent, author, commiter,message 5가지 구성요소로 이루어져 있다. tree : tree와 blob를 포인팅하는 구성요소이다. parent : 해당 커밋 직전에 어떤 커밋이 있었는지 포인팅한다. author : 작성자. commiter : 커밋을 만든 사람. message : 커밋을 설명하는 메세지. 예를 들어 commit이 두 개 찍힌 다음과 같은 로그를 가진 Git 폴더가 있다고 해보자 $ git log --oneline 6e3a608 ..
· CI, CD/Git
변경사항을 압축해 저장하는 objects 폴더 objects 폴더 내부를 보면 두 글자 이름을 가진 폴더들이 있다. objects 폴더는 git의 모든 변경사항을 압축해서 파일들을 각 폴더 내부에 저장한다. 이 내부에는 commit, tree, blob, annotated tag들이 저장되며, git을 통해 히스토리를 확인할 수 있는 것은 바로 이 폴더 내부에 모든 스냅샷들이 저장되기 때문이다. 저장되는 방식은 hash에 해당하는 압축된 변경사항으로 저장된다. 예를 들어 위 폴더 중 02에는 7f7aa 로 시작하는 파일명인 파일이 있다. 이 파일은 Git의 저장의 기본 단위인 blob로, blob 파일 내부에는 027f7aa 해시값에 대한 변경사항이 압축되어 있다. 깃에서는 blob 파일의 압축을 풀어 ..
Dev.Cho
'GIT' 태그의 글 목록