코드잇

    7. Git 자유자재로 활용하기 (2)

    7. 적용한 작업 내용은 스택에서 없애기 이전 영상에서 배웠던 커맨드들을 잠깐 정리해보겠다. 1. 작업 내용 저장 : git stash 2. 작업 내용 조회(=스택 살펴보기) : git stash list 3. 작업 내용 적용 : git stash apply [작업 내용의 아이디] * 작업 내용의 아이디를 생략하면 가장 최근의 작업 내용이 적용됨 4. 작업 내용 제거 : git stash drop [작업 내용의 아이디] * 작업 내용의 아이디를 생략하면 가장 최근의 작업 내용이 제거됨 이전에 적용(apply)한 작업 내용은 스택에서 제거(drop)해주는 게 좋다고 했었다. 그래서 git stash apply를 쓰고 git stash drop을 바로 해줬었는데 사실 이런 식으로 번거롭게 할 필요없이, gi..

    7. Git 자유자재로 활용하기 (2)

    7. Git 자유자재로 활용하기

    1. git reset을 하고 나서 돌아오려면? git reset은 HEAD가 가리키던 브랜치가 가리키는 커밋을 바꾸는 커맨드라고 했다. git reset으로 뒤의 커밋으로 돌아가면, 이후의 커밋들은 어떻게 되는 걸까? 커밋 히스토리에서 가장 처음의 커밋으로 reset 해 보겠다. calculator.py 파일의 내용을 보면 제일 처음 커밋했던 내용으로 돌아갔음을 확인할 수 있다. 커밋 히스토리를 보아도 가장 처음 커밋 하나만 출력되고 있다. 이때까지 한 커밋들은 삭제된 것처럼 보이지만, 사실은 아니다! reset 해도 그 이후의 커밋들이 삭제되는 건 아니다. 다시 이전의 커밋 히스토리를 보고 가장 최신의 커밋으로 reset 해 보겠다. 그런 다음 커밋 히스토리를 보아도 내역들이 모두 출력되고 calcu..

    7. Git 자유자재로 활용하기

    6. Git 협업하기

    1. git push 전에 git pull을 해야하는 경우가 많다 이번엔 git push를 하면서 자주 만나는 상황을 알아보겠다. premium 브랜치의 license 파일에 기업용 가격에 대한 내용을 추가하고, premium 브랜치에 커밋까지 완료했다. 깃허브의 premium 브랜치 license 파일에는 교육용 가격에 대한 정보를 추가하고 커밋메세지를 남겨 주었다. 그러면 현재는 로컬 레포지토리와 리모트 레포지토리의 최신 커밋 내용이 각각 다르다. 로컬 레포지토리에는 기업용 가격에 대한 정보가, 리모트 레포지토리에는 교육용 가격에 대한 정보가 추가되어있다. 이렇게 한 프로그램을 각각 다른 개발자가 다른 방식으로 개발하는 일은 매우 흔하다. 이 상태에서 로컬 레포지토리에서 리모트 레포지토리에 git p..

    6. Git 협업하기

    5. 브랜치 사용하기 (2) - [ git reset / checkout / merge ]

    8. HEAD와 브랜치의 관계 main 브랜치에서 커밋 히스토리를 살펴보면 HEAD가 main을 가리키고 있다.(HEAD -> main) 앞서 HEAD는 어떤 커밋 하나를 가리키고, branch는 하나의 코드 관리 흐름이라고 했다. 둘은 무슨 관계길래 HEAD가 브랜치를 가리키는 형상을 띠고 있을까? 먼저 branch는 코드를 관리하는 하나의 흐름인데, HEAD처럼 어떤 커밋을 가리키는 존재이다. 앞으로는 포인터라고 설명하겠다. 우리가 커밋을 처음으로 하면 main 브랜치가 첫번째 커밋부터 시작해서 매번 새롭게 생기는 커밋을 가리킨다. 깃에서 커밋은 이전 커밋에 대한 정보를 가지고 있으므로 main 포인터가 가장 최신의 커밋을 가리키고 있다고 해도 결국 그 이전 커밋으로 하나씩 거슬러 올라갈 수 있기 때..

    5. 브랜치 사용하기 (2) - [ git reset / checkout / merge ]

    5. 브랜치 사용하기 - [ branch / merge ]

    1. 브랜치란? 브랜치란 하나의 코드 관리 흐름으로, 나뭇가지를 뜻한다. Git은 루트 커밋을 시작으로 여러번의 수정을 거치고 가지가 갈라지는 나무 모양을 하고 있다. 여기서 가지 하나하나를 브랜치라고 한다. 예를 들면 하나의 프로그램이라도 유료 버전, 무료 버전이 있을 수 있다. 이럴 때 다른 두 개의 프로젝트를 만들기 보다, 하나의 프로젝트 내에서 두 개의 브랜치를 만드는 것이 더 효율적이다. 현재까지 나는 하나의 브랜치 위에서 작업해왔다. git bash에서 git status를 입력하면 on branch main 이라고 출력되는 것을 볼 수 있다. 여기서 main 은 레포지토리를 만들고 커밋을 하면 자동으로 생기는 기본 브랜치이다. 지금까지 만든 프로젝트를 무료 버전으로 하고, 유료 버전의 브랜치..

    5. 브랜치 사용하기 - [ branch / merge ]

    4. 커밋 다루기 - [ commit history / 커밋 메세지 / HEAD / git reset ]

    1. 커밋 히스토리 살펴보기 이때까지 한 커밋들을 커밋 히스토리라고 한다. git bash에서 git log 커맨드를 입력하면 커밋 히스토리를 확인할 수 있다. 가장 오래된 커밋이 아래에, 최신 커밋이 위에 출력된다. 노란색으로 표시된 commit 옆에 긴 문자열들은 커밋 아이디(=커밋 해시)이다. 커밋 히스토리에는 차례로 커밋 아이디, 커밋을 한 사람, 날짜와 시간, 커밋 메세지가 출력된다. 앞서 커밋 히스토리를 확인해 봤을 땐 커밋 히스토리 하나가 공간을 많이 차지해 한눈에 알아보기 어려운 느낌이다. q를 입력해 빠져나간 후, git log 커맨드에 --pretty=oneline 이라는 옵션을 붙여주면 더 깔끔하게 볼 수 있다. 사진처럼 커밋 아이디와 커밋 메세지만 한 줄에 표시된다. 나는 총 네 번..

    4. 커밋 다루기 - [ commit history / 커밋 메세지 / HEAD / git reset ]