LabHub

Git 실전 · 되돌리기(reset·revert·reflog) · 퀴즈

퀴즈: 되돌리기

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 되돌릴 방법을 고르는 두 질문은?

    1. 커밋이 몇 개인가 / 브랜치가 몇 개인가
    2. 되돌릴 것이 어디에 있는가 / 그 커밋이 이미 다른 사람에게 갔는가
    3. 리모트가 있는가 / 태그가 있는가
    4. 스쿼시했는가 / 리베이스했는가
  2. `git reset --mixed`(기본값)로 잃는 것은?

    1. 스테이징 상태만 잃는다
    2. 아무것도 잃지 않는다
    3. 커밋되지 않은 모든 변경을 잃는다
    4. reflog 를 잃는다
  3. 이미 푸시되어 여러 사람이 받아 간 커밋을 강제 푸시로 지우면?

    1. 모두의 로컬에서도 함께 사라진다
    2. 서버가 푸시를 거부한다
    3. 받아 간 사람들의 로컬은 그대로여서 그들이 다음에 푸시하면 지웠던 커밋이 되살아난다
    4. reflog 만 남고 객체는 즉시 삭제된다
  4. 머지 커밋을 revert 한 뒤 브랜치를 고쳐 다시 머지하면?

    1. 되돌렸던 변경이 다시 머지될 때 자동으로 돌아온다
    2. Git 이 충돌로 막아 준다
    3. 머지 커밋이 두 개 생긴다
    4. 되돌렸던 변경이 돌아오지 않는다 — Git 은 머지를 이력의 도달 가능성으로만 판단하기 때문
  5. reflog 에 대한 설명 중 틀린 것은?

    1. 스테이징만 하고 커밋하지 않은 내용은 어떤 방법으로도 복구할 수 없다
    2. 브랜치를 삭제하면 그 브랜치의 참조 로그도 함께 삭제된다
    3. 기본 만료는 도달 가능 90일, 도달 불가 30일이다
    4. `git reflog expire --expire=now --all` 은 안전망을 즉시 없앤다
  6. `git commit --amend` 로 메시지만 바꿨을 때 커밋 해시는?

    1. 반드시 달라진다 — 메시지도 커밋 객체의 일부이기 때문
    2. 그대로다 — 내용이 같기 때문
    3. 부모가 같으면 항상 같다
    4. 태그가 붙어 있을 때만 달라진다