본문 바로가기

git기초9

작업중인 코드 임시 저장하기(git stash) 어떤 작업을 하던 중, 급하게 처리해야 하는 다른 작업건이 생겼다면, 그런데 그 우선작업건이 다른 브랜치에서 해야 하는 일이라면 어떻게 해야할까? 작업을 마무리하지 못한 상태에서 다른 브랜치로 이동하게 되면 아래와 같은 에러가 발생한다. 현재 브랜치에서 변경된 내용을 커밋하지 않았기 때문에, 아직까지 작업한 내용이 모두 사라지게 된다고 경고하는 것이다. 그렇다고 작업이 완료된 것이 아니니 커밋을 하기에도 부담스럽고... 하지만 우리의 깃에는 없는 것 빼고 다 있다. (훗) 이런 상황을 대비해서 코드를 임시저장할 수 있는 커맨드가 있다. 작업하던 코드 임시저장하고 싶을 때 아래와 같은 커맨드를 사용해서 작업하던 코드를 임시저장할 수 있다. git stash git stash를 한국어로 번역하면 '숨기는 장.. 2022. 12. 14.
git revert로 커밋 여러개 동시에 취소하기 커밋을 하나씩 취소할 수도 있지만 이어진 커밋 여러개를 동시에 취소할 수도 있다. 테스트를 위해서 아래와 같이 revert.txt 라는 파일을 만들고 여러가지 작업을 한 후에 각각 커밋을 해 두었다. 해당 파일을 생성하기만 한 Create revert.txt 커밋을 제외하고 (앗 오타가..) 나머지 Update revert.txt 부터 Edit revert.txt 까지 총 3개의 커밋을 취소해보도록 하겠다. 위의 붉은색 배경으로 표시된 파일을 지우려면 git revert 명령어를 입력하고 실행하면 된다. git revert [취소하고 싶은 커밋의 이전 커밋아이디]..[취소하고 싶은 마지막 커밋 아이디] 커밋 아이디 두개를 '..' 으로 이어주는데, 여기서 주의할 점은 앞의 커밋 아이디는 삭제 커밋에 포함.. 2022. 12. 8.
Remote Repository 내용을 merge하지 않고 가져오기(git fetch) git pull은 리모트 레포지토리 내의 해당 브랜치가 가리키고 있는 모든 커밋을 로컬 레포지토리로 가져와서 머지를 하는 명령어이다. 그런데 간혹 아래와 같은 상황이 발생할 수 있다. 리모트 레토지토리의 브랜치 내용을 머지하기 전, 점검해야 할 필요가 있다. 리모트 레포지토리의 브랜치 내용과 로컬 레포지토리에서 직접 작성한 코드를 비교해서 오류가 없는지 검토해야 한다. 그럴 때 리모트 레포지토리에 있는 내용을 무조건 머지하는 것이 아니라, 일단 가져와서 내용을 살펴보고 머지를 할 수 있는 명령어가 있다. 아래 명령어를 사용하면 된다. git fetch fetch는 우리말로 '가져오다'라는 의미를 가지고 있다. 이 명령어를 사용하면 머지를 하지는 않고, 리모트 레포지토리에 있는 내용을 가져오기만 한다. 예.. 2022. 11. 30.
HEAD와 브랜치의 관계(개념, 원리) HEAD와 브랜치의 관계, 더 나아가 git reset의 개념에 대해서 추가로 알아보도록 하자. 글로만 쓰는 것보다 이미지와 함께 설명하면 더 좋을 듯 해서 피그마로 후다닥 그려 보았는데...🥲 이해에 도움이 될지 모르겠다. 브랜치(branch)의 개념 브랜치는 커밋을 가리키는 포인터이다. 아래 이미지와 같이 세번째 커밋을 한 후 premium 브랜치를 새로 만들어서, main 브랜치와 각각의 작업을 수행했다면 main 브랜치와 premium 브랜치는 각각 다른 커밋을 가리키는 포인터인 것이다. 헤드(HEAD)의 개념 HEAD는 이러한 브랜치를 가리키는 포인터이다. HEAD가 가리키는 커밋에 따라 working directory가 달라진다. 따라서 아래 이미지의 경우, HEAD가 main 브랜치를 가리키.. 2022. 11. 22.
컨플릭트(Conflict) 났을 때 해결하는 방법 지난 포스팅에서는 브랜치 머지하는 방법에 대해서 설명했다. 이번 포스팅에서는 컨플릭트가 발생했을 때의 해결 방법을 설명하려고 한다. 컨플릭트(Conflict)가 발생했다! 나는 premium 이라는 브랜치와 main 이라는 브랜치 위에서 각각 작업을 했다. 그 다음 다시 premium 브랜치로 이동해서 main 브랜치의 작업 내용을 가져와 합치기로 했다. 그래서 git merge main 이라는 커맨드를 입력하고 실행시켰는데, 아래와 같은 오류 메세지가 떴다. "CONFLICT (content) : Merge conflict in calculator.py" 이 메세지는 머지를 하다가 calculator.py 파일에서 충돌이 발생했다는 의미이다. 두 개의 코드가 달라서 어떤 코드로 합쳐야 할지 알 수 없을.. 2022. 11. 19.
브랜치 머지(branch merge)하는 방법 브랜치를 생성했다면 프로젝트를 변경하기 전, 본인이 어떤 브랜치로 작업을 하고 있는지 꼭 확인을 해야 한다. 이번 포스팅에서는 다른 브랜치에서 작업한 내용을 합치는 방법에 대해서 포스팅해보려고 한다. 상황 정의 브랜치를 생성해서 작업을 하고 있는데, 해당 작업이 다른 브랜치에도 적용이 되어야 한다는 사실을 알았다. 다른 브랜치로 이동을 해서 동일한 작업을 반복해도 상관 없겠지만, 그런 번거로움 없이 기존의 작업 내용을 그대로 반영하는 방법이 있다. 이것을 브랜치 머지(branch merge)라고 한다. 머지(merge)는 영어로 '병합하다'의 의미를 가지고 있다. 브랜치 머지(branch merge)하는 방법 브랜치 머지를 실행하는 명령어는 아래와 같다. git merge 브랜치명 # 현재 위치의 브랜치.. 2022. 11. 16.
Git 명령어 도움말 실행 - 의미 & 사용법 더 알아보기(git help) Git을 공부하다 보면 git add, git commit, git status 등 다양한 명령어에 대해서 배우게 된다. 이러한 명령어들의 의미, 사용법 등을 더 자세히 알고 싶다면 어떻게 해야 할까? 우리가 특정 프로그램을 설치하면 도움말을 찾아서 볼 수 있듯이, 터미널에서도 git 명령어에 대한 도움말을 실행할 수 있다. Git 명령어 도움말 보기 Git 명령어 도움말을 실행하는 방법은 간단하다. git help [명령어] 또는 man git-[명령어] 를 입력해서 실행하면 되는데 [명령어] 자리에 git 뒤에 오는 명령어 알파벳을 입력하면 된다. 대괄호는 구분하기 쉽도록 사용한 것으로 실제 터미널에서는 함께 쓰지 않도록 한다. 쉽고 빠른 이해를 위한 예제 한가지! 변경한 파일을 Staging Are.. 2022. 9. 13.
Staging Area에 추가한 파일 되돌리기(git add 취소) Working Directory에서 파일을 변경하고 Staging Area에 추가까지 했는데, 잘못된 작업이어서 되돌리고 싶은 경우가 발생한다면... Staging Area에 넣은 파일은 되돌릴 수 있을까? 이번 포스팅에서는 git add 완료한 파일을 다시 되돌리는 방법(git add 취소)에 대해서 설명하려고 한다. 명령어 한 줄만 입력하면 된다. Staging Area 파일 되돌리기 - git add 취소하는 방법 상황을 설명하자면, downloads > gitstudy 디렉토리 안에 day1, day2 파일을 새로 생성했다. 그리고 git add 명령어를 사용해 두 개의 파일을 Staging Area에 추가했다. 그 다음 git status 명령어를 통해 해당 영역의 상태를 확인하면... 아래와 .. 2022. 9. 8.
Git의 세가지 작업영역(Working Directory, Staging Area, Repository) Git의 작업영역을 자세히 살펴보면 크게 3가지로 구분된다. 앞으로 Git을 이용해서 버전 관리를 하려면 이 개념을 반드시 이해하고 있어야 한다. Working Directory Git으로 관리하도록 지정된 디렉토리이다. 우리가 실제로 작업을 하는 공간이며 .git을 제외한 모든 영역이라고 보면 된다. 이 곳에서 작업한 파일들을 git add 명령어를 통해 Staging Area에 추가할 수 있다. 이 영역을 다른 말로 Working Tree 라고 부르기도 한다. Staging Area Working Directory에서 git add로 추가된 파일들이 존재하는 영역이다. Commit을 하게 되면 Staging Area에 추가된 파일들만 Repository에 반영된다. Working Directory에 .. 2022. 9. 5.