본문 바로가기

전체 글306

머지 기록 없이 깔끔한 커밋 히스토리 관리하기(git rebase) 커밋 히스토리에 머지 기록 없이 코드를 합칠 수 있는 방법이 있다. A 브랜치와 B 브랜치가 있다. 두 브랜치에서 각각 작업을 한 내역이 있는데 이걸 A 브랜치에 합치려고 한다. 두가지 방법이 있는데 그 첫번째는 A 브랜치에서 B 브랜치를 머지하는 방법이다. git merge B브랜치명 그런데 이렇게 하면 커밋 히스토리에 머지를 한 내용이 남는다. 만약 머지한 내용을 남기고 싶지 않고 원래 한 브랜치에서 작업한 것처럼 보이게 하고 싶다면 어떻게 해야 할까? 커밋 히스토리를 깔끔하게 관리할 수 있는 git rebase 그럴 때에는 rebase 명령어를 사용하면 된다. git rebase [합치고 싶은 브랜치명] rebase는 단어 그대로 베이스를 다시 설정한다는 의미이다. 위의 사진처럼 커맨드를 실행시킨 .. 2022. 12. 13.
크리스마스 카드 대신, 내 트리를 꾸며줘! 회사 동기 친구의 아는 분이 만들었다고 해서 우연히 써본 서비스, 내 트리를 꾸며줘! 카카오 계정, 트위터, 구글 중 한 가지 계정을 선택하고, 사람들에게 보여줄 닉네임만 정하면 간단하게 회원가입이 끝난다. 트리 디자인, 배경, 포인트까지 커스터마이징도 가능하다. 마지막으로 받은 메세지 내용과 갯수를 다른 사람들에게 공개할 것인지 여부만 선택하면 나만의 트리 만들기 완료! 이제 내 트리 링크를 복사해서 지인들에게 보내기만 하면 모든 작업(!)이 끝난다. 지인들은 나의 트리에 850자까지 메세지를 남길 수 있는데, 이건 아무때나 열어볼 수는 없고 크리스마스 당일(25일)에 확인할 수 있다고 한다. 크리스마스가 되기 전에는 누가 글을 작성했는지 닉네임만 볼 수 있다. 왠지 어렸을 적 친구와 크리스마스 카드를.. 2022. 12. 12.
git reset 되돌리고 싶을 때 커밋 리스트 확인하기(git reflog) 프로젝트를 시작한 후에 이런 저런 작업들을 해서 많은 커밋들이 쌓였다. 작업을 하다가 특정 시점으로 돌아가고 싶어서 git reset 명령어를 실행시켰는데, 그것이 실수였다면... 다시 예전으로 돌아가야 한다면...🫠 그럴 때는 어떻게 해야 할까? 먼저 아직까지 한 커밋리스트를 살펴 보았다. git reset 되돌리는 방법을 설명하기 위해 일단 첫번째 커밋인 Create calculator.py and Lisence 으로 돌아가보도록 하겠다. (테스트를 하면서도 되돌리는 걸 실패할까봐 무서운 코린이...😦) 되돌리고 싶은 첫번째 커밋 아이디를 확인한 후에 git reset --hard 1ec2 라는 명령어를 실행시켰다. 그리고 다시 커밋 히스토리를 확인해 보았다. 엌... 다 없어져 버렸어... 일단 r.. 2022. 12. 10.
git revert로 커밋 여러개 동시에 취소하기 커밋을 하나씩 취소할 수도 있지만 이어진 커밋 여러개를 동시에 취소할 수도 있다. 테스트를 위해서 아래와 같이 revert.txt 라는 파일을 만들고 여러가지 작업을 한 후에 각각 커밋을 해 두었다. 해당 파일을 생성하기만 한 Create revert.txt 커밋을 제외하고 (앗 오타가..) 나머지 Update revert.txt 부터 Edit revert.txt 까지 총 3개의 커밋을 취소해보도록 하겠다. 위의 붉은색 배경으로 표시된 파일을 지우려면 git revert 명령어를 입력하고 실행하면 된다. git revert [취소하고 싶은 커밋의 이전 커밋아이디]..[취소하고 싶은 마지막 커밋 아이디] 커밋 아이디 두개를 '..' 으로 이어주는데, 여기서 주의할 점은 앞의 커밋 아이디는 삭제 커밋에 포함.. 2022. 12. 8.
깃허브(Remote Repository)에 올린 커밋 취소하기(git revert) 로컬 레포지토리에서 작업하고 깃허브에 push까지 완료했는데 취소해야 하는 상황이 발생한다면... 이럴 때 사용하는 명령어가 있다. 리모트 레포지토리 최신 커밋 취소하는 방법 로컬 레포지토리에서 작업한 내용을 커밋하고 깃허브의 리모트 레포지토리에도 업로드했다. 그런데 해당 작업 내용을 모두 되돌려야 한다는 사실을 알았다면... 그럴 때에는 아래 명령어를 사용해서 작업한 내용을 취소하면 된다. git revert 커밋아이디 revert는 한국어로 번역하면 '돌아가는 것'이라는 의미이다. (출처: 구글 번역기) 커밋 히스토리를 살펴보니 최근 커밋의 아이디는 18173fa4e...로 시작하는 것을 확인할 수 있었다. 그래서 git revert 1817 명령어를 입력하고 실행했다. 커밋 메세지를 입력하라는 새로.. 2022. 12. 4.
누가 작업했는지 알고 싶을때(git blame, git show) 프로젝트의 특정 부분을 누가 작업했는지 알고 싶을 때 사용하는 명령어가 있다. 한 개의 파일을 확인하는 방법, 한 개의 커밋을 확인하는 방법 - 두 가지 방법이 있으며 각각 다른 명령어를 사용한다. 한 개의 파일을 추적하고 싶을 때 특정 파일의 히스토리를 알고 싶은 경우 git blame이라는 커맨드를 사용한다. blame은 한국어로 '탓하다' 라는 의미라고 하는데...(응?) 보통 해당 작업을 누가 했는지 찾아야 하는 상황이라면 코드에 오류가 발생한 것일테니 묘하게 어울리는 것 같기도 하다 🤣 git blame 파일명 아래와 같이 git blame calculator.py를 입력하여 calculator.py라는 파일을 누가 작업했는지 히스토리를 살펴보았다. 괄호 안의 아이디를 통해서 작업자를 확인할 수.. 2022. 12. 1.
Remote Repository 내용을 merge하지 않고 가져오기(git fetch) git pull은 리모트 레포지토리 내의 해당 브랜치가 가리키고 있는 모든 커밋을 로컬 레포지토리로 가져와서 머지를 하는 명령어이다. 그런데 간혹 아래와 같은 상황이 발생할 수 있다. 리모트 레토지토리의 브랜치 내용을 머지하기 전, 점검해야 할 필요가 있다. 리모트 레포지토리의 브랜치 내용과 로컬 레포지토리에서 직접 작성한 코드를 비교해서 오류가 없는지 검토해야 한다. 그럴 때 리모트 레포지토리에 있는 내용을 무조건 머지하는 것이 아니라, 일단 가져와서 내용을 살펴보고 머지를 할 수 있는 명령어가 있다. 아래 명령어를 사용하면 된다. git fetch fetch는 우리말로 '가져오다'라는 의미를 가지고 있다. 이 명령어를 사용하면 머지를 하지는 않고, 리모트 레포지토리에 있는 내용을 가져오기만 한다. 예.. 2022. 11. 30.
머지(Merge)의 두가지 종류(Fast-forward & 3-way)와 규칙 머지(Merge)는 일정한 규칙을 가지고 이루어지는데, 이 규칙에 따라 두가지 종류로 나눌 수 있다. 오늘은 이러한 머지의 규칙과 종류에 대해서 포스팅해보려고 한다. 머지(Merge)의 규칙 머지를 할 때 컨플릭트(Conflict)가 발생하는 경우가 종종 있다. 컨플릭트가 발생하는 이유에 대해서는 이미 알고 있지만, 그렇다면 git은 어떤 규칙으로 파일을 합치는 것일까? 머지는 아래 두가지 규칙에 따라 이루어진다고 한다. 브랜치의 가지가 갈라져 나온 시점의 커밋 내용과 비교했을 때, 달라진 부분이 있다면 우선하여 적용 만약 두 브랜치에서 동일한 부분에 변화가 있다면, git은 어떤 것을 우선시해야 할지 판단하지 못함 → 컨플릭트를 발생시켜서 사용자가 직접 선택하도록 유도 머지(Merge)의 종류 위의 규.. 2022. 11. 23.
HEAD와 브랜치의 관계(개념, 원리) HEAD와 브랜치의 관계, 더 나아가 git reset의 개념에 대해서 추가로 알아보도록 하자. 글로만 쓰는 것보다 이미지와 함께 설명하면 더 좋을 듯 해서 피그마로 후다닥 그려 보았는데...🥲 이해에 도움이 될지 모르겠다. 브랜치(branch)의 개념 브랜치는 커밋을 가리키는 포인터이다. 아래 이미지와 같이 세번째 커밋을 한 후 premium 브랜치를 새로 만들어서, main 브랜치와 각각의 작업을 수행했다면 main 브랜치와 premium 브랜치는 각각 다른 커밋을 가리키는 포인터인 것이다. 헤드(HEAD)의 개념 HEAD는 이러한 브랜치를 가리키는 포인터이다. HEAD가 가리키는 커밋에 따라 working directory가 달라진다. 따라서 아래 이미지의 경우, HEAD가 main 브랜치를 가리키.. 2022. 11. 22.
2022 카타르 월드컵 H조 대한민국 조별리그 일정 2022 카타르 월드컵 H조 조별리그 일정을 확인해보도록 하자. 참고로 조별리그는 2022년 11월 21에 첫 경기를 시작으로 12월 3일까지 진행된다. 2022 카타르 월드컵 H조 조별리그 일정표 날짜 시간 국가 경기장 11월 24일(목) 오후 10시 우루과이 : 대한민국 에듀케이션 시티 11월 25일(금) 오전 1시 포르투칼 : 가나 스타디움 974 11월 28일(월) 오후 10시 대한민국 : 가나 에듀케이션 시티 11월 29일(화) 오전 4시 포르투갈 : 우루과이 루사일 스타디움 12월 3일(토) 오전 0시 대한민국 : 포르투갈 에듀케이션 시티 오전 0시 가나 : 우루과이 알 자누브 스타디움 오전 4시에 하는 경기는 나같은 직장인이 보기에는 무리가 있지 싶은데, 다행히도 대한민국은 오후 10시, 오.. 2022. 11. 21.