티스토리 뷰

 

 

1. 다음중, git branch <branch> 와 git checkout <branch> 의 동작을 하나의 명령어로 축약 가능한 것은?


ㄱ. git branch -C <branch>
ㄴ. git branch --switch <branch>
ㄷ. git checkout -B <branch>
ㄹ. git checkout --create <branch>

 

답: ㄷ

 

 


2. 다음중, merge 도중 발생한 conflict 을 해결할 때, 올바른 처리 방법이 아닌 것은?

git add .
git commit


git merge --force


git merge --abort

 

답: ㄴ

해설:

ㄴ. git merge --force 명령어는 merge를 강제로 수행하게 하는 옵션이다.

이는 충돌을 발생시킨 변경 사항을 무시하고 강제로 병합을 시도하기 때문에 충돌을 해결하는 올바른 방법이 아니다.

 

+)

ㄱ. git add . -> git commit는 충돌 해결 후 변경사항을 스테이징 영역에 추가하고 커밋하는 일반적인 절차다.

ㄷ. git merge --abort는 merge 작업을 중단하고, merge 직전의 상태로 되돌린다.

 

 

 

3. 다음중, 빈칸에 들어갈 알맞은 것은?

"___"은(는) HEAD이(가) 가리키는 branch이(가) 다른 commit을(를) 가리키도록 하는 반면, 
"___"은(는) HEAD이(가) 자체가 다른 branch이(가)나 commit을(를) 가리키도록 한다. 
이 때, branch을(를) 통하지 않고 직접적으로 commit을(를) 가리키는 HEAD을(를) "___"라고 한다

 

ㄱ. rebase, reset, Broken HEAD
ㄴ. rebase, reset, Unlinked HEAD
ㄷ. reset, checkout, Unpaired HEAD
ㄹ. reset, checkout, Detached HEAD

 

답: ㄹ

해설:

Detached Head란 말 그대로 head가 (branch로부터) 떨어져있는 상태를 뜻한다. 즉, branch를 통해서가 아니라 직접 다이렉트로 commit을 참조하고 있는 상태를 뜻한다. 다음과 같은 명령어를 썼을 때 detacehd head 상태가 된다.

git checkout -b <branch>

 

git 에서 head는 단 하나만 존재한다. 시작점 같은 개념이다.

일반적으로 git에서 head는 특정 branch를 가리키고 branch는 다시 특정 commit을 가르킨다.

보통의 경우엔 head-> branch -> commit 의 참조순서를 가진다.

 

하지만 이 때, checkout 명령어로 특정 커밋으로 checkout할 경우 깃은 참조하던 branch를 잃어버리고 직접 특정 commit을 참조하는 detached head 상태가 된다.

 

 


4. 다음중, 보기에 대한 설명으로 올바른 것은?

git branch -d hello

 

ㄱ. 이름이 hello 인 branch 가 생성된다
ㄴ. -d(ate) 옵션을 주었기에, 이름이 hello 인 branch 의 생성날자를 출력한다
ㄷ. -d(elete) 옵션을 주었기에, 이름이 hello 인 branch 를 삭제한다
ㄹ. -d(isplay) 옵션을 주었기에, 이름이 hello 인 branch 의 수정이력을 출력한다

 

답: ㄷ