branch

    [GitHub] Branch Protection Rule 적용해 브랜치 보호하기

    Branch를 보호하는 것이 중요한 이유 협업을 할 때 Rule이 없으면 각자 자신의 방식으로 일을 하게 되기 때문에 뒤죽박죽이 된다. 만약 인원이 적다면 별 문제가 되지 않지만, 실무에서는 적게는 3명 많게는 수십 수백명이 하나의 저장소를 관리하기 때문에 저장소를 관리하기 위한 Rule이 중요하다. 특히 Git의 Branch는 협업을 위한 기본 토대이기 때문에 최소한의 규칙을 정해야 협업 시의 혼란을 방지할 수 있다. GitHub의 Branch Protection Rules GitHub에서는 GitHub에 올라간 Branch들에 대한 Rule을 지정할 수 있게 해준다. 이 Rule을 이용하면 특정 브랜치가 실수로 지워지는 것을 방지하거나 PR(Pull Request)가 아닌 다른 방식으로 커밋을 추가하..

    [Git] .git 내부에서 HEAD를 인식하는 방법

    .git 내부에서 HEAD를 인식하는 방법 .git 내부에는 HEAD파일이 있다. 이 파일은 HEAD를 인식하기 위한 메타 데이터를 저장하는 파일이다. 작업 중인 브랜치에 따라 변하는 HEAD파일 HEAD 파일은 현재 HEAD가 가리키는 해시 값을 저장하는 파일을 가리키는 reference 값을 저장한다. 따라서 HEAD 파일은 현재 작업중인 브랜치에 따라 값이 바뀌게 된다. 예를 들어 main 브랜치에서 .git/HEAD를 확인할 때는 이 값은 "ref: refs/heads/main" 이 된다 하지만 feature-view 브랜치에서 .git/HEAD를 확인하면 이 값은 "ref: refs/heads/feature-view" 가 된다. 이 텍스트 값은 바로 현재 브랜치의 HEAD의 해시 값을 저장하는 ..

    [Git] git branch 삭제하는 방법 알아보기 : -d와 -D 옵션을 이용한 브랜치 삭제

    git branch -d 를 이용한 삭제 git branch -d 는 git branch --delete 과 같은 명령어이다. 이 명령어를 사용해 브랜치를 삭제하려면 다음과 같이 작성하면 된다. git branch -d [branch name] git branch --delete [branch name] 하지만 git branch -d는 branch가 원 브랜치에 비해 변경사항이 없을 때만 가능하다. 즉, 브랜치에 변경 사항이 있는 경우 다음과 같은 오류가 생긴다. error: The branch 'feature-layout' is not fully merged. If you are sure you want to delete it, run 'git branch -D feature-layout'. 예를 들..

    [Git] branch 생성과 전환 방법 알아보기 : 브랜치 조작을 위해서는 어떤 명령어를 사용해야 하는가?

    branch란 무엇인가? branch란 개발 저장소를 어지럽히지 않고 병렬적으로 개발을 수행할 수 있도록 도와주는 작업공간이다. branch는 Git의 가장 기본적인 작업공간 단위이다. 따라서 branch라 부르는 작업공간을 전환하고 생성하는 방법은 매우 중요하며, 작업 공간의 목록을 확인하는 것도 매우 중요하다. git branch 이용해 브랜치 목록과 현재 브랜치 확인하기 git branch를 사용하면 브랜치 목록이 뜬다. 이 중 왼쪽에 *표시가 되어 있는 것이 현재 작업중인 브랜치이다. branch 생성하기 이번에는 브랜치를 생성하는 방법을 알아보자. branch를 생성하는 방법은 다음 두가지 방법으로 가능하다. git branch를 이용한 생성 git checkout -b 를 이용한 생성과 전환..

    [Git] HEAD란 무엇인가?

    HEAD란 무엇인가? Git을 다루다보면 git log를 찍었을 때 HEAD가 특정 커밋에 찍혀있는 것을 볼 수 있다. 모든 브랜치에는 HEAD 값이 존재하는데 HEAD란 해당 브랜치의 마지막 커밋을 뜻한다. 따라서 아래와 같이 HEAD가 특정 커밋에 찍혀 있을 경우 해당 브랜치의 마지막 커밋이 해당 부분이라는 것을 알 수 있게 된다. 즉, HEAD는 특정 브랜치의 마지막 커밋에 대한 포인터이다. HEAD -> [branch name] 다른 브랜치의 HEAD확인하기 위의 master branch에서 다음 명령어를 이용해 feature-layout이라는 새로운 브랜치를 만들었다고 해보자. git checkout -b "feature-layout" 브랜치를 새로 만들게 되면 이전 master의 commit들..