코딩고치

[Git] 커밋 본문

Git

[Git] 커밋

코딩고치 2020. 5. 5. 20:19

커밋 메시지

  • 기존 코드에서 데이터 삽입 기능을 하는 함수를 추가
# 최대 힙
class Heap:
    def __init__(self, num):
        self.heap_list = list()
        self.heap_list.append(None)
        self.heap_list.append(num)

    # 여기서부터 추가된 코드
    def switch(self, num_index):
        if num_index == 1:
            return False  # root node 일때

        parent_index = num_index // 2
        if self.heap_list[num_index] > self.heap_list[parent_index]:
            return True

        return False

        # 데이터 삽입

    def insert(self, num):
        if len(self.heap_list) == 0:
            self.heap_array.append(None)
            self.heap_list.append(num)
            return True
        self.heap_list.append(num)

        # 추가한 num이 부모 노드보다 크면 자리바꾸기 위한 코드
        num_index = len(self.heap_list) - 1

        while self.switch(num_index):
            parent_index = num_index // 2
            self.heap_list[num_index], self.heap_list[parent_index] \
                = self.heap_list[parent_index], self.heap_list[num_index]
            num_index = parent_index
        return True
  • git commit 명령어를 입력하면 아래와 같은 창이 뜬다.

    

  • 커밋 메시지를 입력할 수 있는 텍스트 에디터 창이다.
  • i를 누르면 입력 모드로 들어가 메시지를 쓸 수 있다.

    

  • 메시지를 쓴 후 ESC를 눌러 기본 모드로 들어간 후 :wq를 입력하면 메시지가 저장되고 커밋이 된다.
  • 커밋 후 git log로 확인할 수 있다.

   

가장 최신 커밋 수정

  • 코드를 수정 하지만 굳이 커밋을 하나 더 만들 필요가 없는 경우 이용한다.

    • 코드 수정 후 add 한 다음에 git commit -- amend 명령어 입력

   

  • 명령어를 입력하면 커밋 메시지를 입력했던 창으로 들어간다.

  • 커밋 메시지를 수정해도 되고 안 해도 상관없다.

  

  • 커밋 히스토리를 살펴보면 커밋의 개수는 그대로지만 가장 최신의 커밋 아이디가 바뀐 것을 볼 수 있다.

커밋 메시지 작성 방법

  1. 커밋 메시지의 제목과 상세 설명 사이에 한 줄을 공백으로 둔다.
  2. 제목 뒤에 점을 찍지 않는다.
  3. 제목 첫 번째 알파벳은 대문자로 적는다.
  4. 제목은 명령조로 적는다.
  5. 상세 내용
    • 왜 했는지
    • 어떤 문제가 있었는지
    • 해결책이 어떤 효과를 가지고 있는지
  6. 최대한 친절하게 작성한다.

커밋할 때의 팁

  1. 커밋을 할 때 하나의 수정사항에 대해서만 커밋을 한다.
    • 여러 부분을 수정하고 커밋을 할 경우 어디서 문제가 생기는지 알지 못하는 경우가 생김.
  2. 코드가 정상적으로 실행되는 경우에만 커밋을 한다.

두 커밋 사이의 차이점 확인

  • git diff [이전 커밋 아이디] [이후 커밋 아이디]를 입력한다.

  

    • 빨간색이 이전 커밋의 모습이며 + 초록색이 이후 커밋의 모습이다.

Head

  • Head는 어떤 커밋 하나를 가리킨다.

    • 보통 가장 최근에 한 커밋을 가리킨다.
  • Head가 어떤 커밋을 가리키느냐에 따라서 워킹 디렉토리의 내용이 달라진다.

  

 

커밋 리셋하기

  • 현재 Head는 가장 최근의 커밋을 가리키고 있다.

  • git reset --hard [커밋 아이디]

    • 입력한 커밋 아이디로 head를 이동시킨다.
    • 주로 과거 시점으로 돌아가고 싶을 때 사용한다.

  

  • Head가 가리키는 것이 달라진 것을 확인할 수 있다.

  • MaxHeap.py 파일을 확인하면 함수가 추가되기 전의 코드만 출력되는 것을 볼 수 있다.

    • 워킹 디렉토리가 달라지기 때문

  

git reset의 옵션

  • --soft
  • --mixed
  • -- hard
    • 커밋 이후에 했던 작업이 전부 삭제되므로 권장되지는 않는다.

 

  • 코드를 수정하고 터미널에 'git add.'을 입력하면 working directory와 staging area가 업데이트된다.

  

  • 바로 이전 커밋으로 --soft 옵션을 이용하여 리셋을 하면 head가 바뀌게 된다.

  

  • 하지만 working directory는 수정한 모습 그대로 남아있게 된다.

 

  • staging area 또한 영향을 받지 않고 그대로 남아 있다.

  

  • --mixed 옵션을 이용하면 working directory는 남아있고 staging area는 리셋된다.

  
   

  • --hard 옵션은 전부 reset 된다.

tag 달기

  • git tag [태그 이름] [커밋 아이디]를 입력하면 된다.

 

'Git' 카테고리의 다른 글

[Git] git fetch  (0) 2020.05.11
[Git] 브랜치  (0) 2020.05.05
[Git] 커밋 히스토리  (0) 2020.05.04
[Git] 다른 사람의 프로젝트 가져오기  (0) 2020.05.04
[Git] Git hub remote repository 이용  (0) 2020.04.28
Comments