본문 바로가기

개발 도구/Git41

Permission denied (publickey). 오류 해결하기 나도 이제 버전관리를 할 수 있게 된 기념으로! 리액트 공부를 하며 깃허브에 정원을 꾸며 보기로 마음 먹었다. 그런데 로컬 레포지토리에 있는 내용을 깃허브에 업로드 하려고 하니까 아래와 같은 메세지가 나오면서 진행이 되지 않았다. git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 으아아아아아 깃허브가 나를 싫어한다아아아아아🫠 일단 정신줄을 잡고 구글신님께 도움을 청해 보았다. 먼저 이런 메세지가 뜨는 이유는 서버에 SSH Key가 없거나 손상이 되어서.. 2023. 1. 3.
버전관리가 필요 없는 파일 관리(.gitignore) 우리가 작업하는 프로젝트 안에는 버전관리가 필요 없는 파일도 존재할 가능성이 있다. 이러한 파일들까지 모두 커밋을 한다면 오히려 용량만 더 차지하고, 나중에 각 버전을 살펴볼 때에 가독성만 더 떨어뜨릴 것이다. 그러면 버전관리가 필요 없는 파일들을 어떻게 처리해야 할까? .gitignore 파일 생성하기 터미널에서 프로젝트 디렉토리로 이동한 후에 아래와 같이 입력하여 파일을 생성한다. touch .gitignore 아무런 반응이 없다면 명령이 성공한 것이다. 파일이 제대로 생성되었는지 확인하고 싶다면 ls -al 커맨드를 입력하여 디렉토리를 살펴보면 된다. .gitignore 파일이 생긴 것을 확인할 수 있었다. 그럼 다음으로는 git이 무시해야 할 파일을 넣는 방법에 대해서 알아보자. 깃허브에서 제공하.. 2022. 12. 22.
커밋 여러개를 하나로 만들고 싶을 때(git reset --soft) 여러개의 커밋을 하나의 커밋으로 합치고 싶을 때에 어떻게 하면 되는지 포스팅으로 정리해보려고 한다. 문제 상황 예시 premium 브랜치에서 작업을 하고 Add factorial function과 Add factorial function2로 각각 커밋했다. 그런데 커밋 히스토리를 확인해 보니... 동일한 커밋이 두 개나 있으면 혼란스러울 것 같아서, 이 커밋들을 하나로 합치고 싶다는 생각이 들었다. 그럴 때에는 예전에 소개했던 git reset 옵션을 사용해서 커밋을 합칠 수 있다. cf. git reset이 궁금하신 분들을 아래 링크 클릭! 2022.11.09 - [개발 도구/Git] - 특정 커밋 시점으로 돌아가고 싶을 때(git reset) 특정 커밋 시점으로 돌아가고 싶을 때(git reset) .. 2022. 12. 22.
다른 브랜치에서 내가 원하는 커밋만 가져오고 싶을 때(git cherry-pick) 다른 브랜치에서 내가 원하는 커밋만 골라서 가져올 수 있는 커맨드가 있다. 알아두면 정말 유용하기 때문에 블로그에 정리해 두려고 한다. 체리픽(cherry-pick)이 필요한 상황 test 브랜치에서 두개의 작업을 수행하고 각각 커밋했다. (커밋 순서 : Add get_Sum_ver1 function → Add get_Sum_ver2 function) 그리고 나서 다시 premium 브랜치로 이동해서 test 브랜치를 합치려고 했는데(머지) 두번째 커밋은 반영하지 않고 첫번째 커밋만 반영해야 하는 상황이 되었다. 내가 원하는 커밋만 골라서 가져오기 위의 상황에서 최종 버전이 아닌 내가 원하는 커밋만 골라서 합칠 수 있는 커맨드가 있다. git cherry-pick 커밋아이디 체리 픽은 어떤 제품이나 서비.. 2022. 12. 19.
실수로 다른 브랜치에서 작업했을 때(git stash list/apply/drop/pop) 지난 포스팅에서 작업한 코드를 임시 저장소에 넣어두고 다시 꺼내는 git stash, git stash list, git stash apply에 대해서 설명했다. 이 포스팅은 지난 포스팅의 내용과 이어지는 부분이 많기 때문에, 먼저 그것을 확인하는 것이 좋을 것 같다. 2022.12.14 - [개발 도구/Git] - 작업중인 코드 임시 저장하기(git stash) 작업중인 코드 임시 저장하기(git stash) 어떤 작업을 하던 중, 급하게 처리해야 하는 다른 작업건이 생겼다면, 그런데 그 우선작업건이 다른 브랜치에서 해야 하는 일이라면 어떻게 해야할까? 작업을 마무리하지 못한 상태에서 다른 브 heinafantasy.com 그리고 오늘 포스팅에서는 브랜치 여러개로 관리하던 프로젝트를 실수로 다른 브랜치.. 2022. 12. 15.
작업중인 코드 임시 저장하기(git stash) 어떤 작업을 하던 중, 급하게 처리해야 하는 다른 작업건이 생겼다면, 그런데 그 우선작업건이 다른 브랜치에서 해야 하는 일이라면 어떻게 해야할까? 작업을 마무리하지 못한 상태에서 다른 브랜치로 이동하게 되면 아래와 같은 에러가 발생한다. 현재 브랜치에서 변경된 내용을 커밋하지 않았기 때문에, 아직까지 작업한 내용이 모두 사라지게 된다고 경고하는 것이다. 그렇다고 작업이 완료된 것이 아니니 커밋을 하기에도 부담스럽고... 하지만 우리의 깃에는 없는 것 빼고 다 있다. (훗) 이런 상황을 대비해서 코드를 임시저장할 수 있는 커맨드가 있다. 작업하던 코드 임시저장하고 싶을 때 아래와 같은 커맨드를 사용해서 작업하던 코드를 임시저장할 수 있다. git stash git stash를 한국어로 번역하면 '숨기는 장.. 2022. 12. 14.
머지 기록 없이 깔끔한 커밋 히스토리 관리하기(git rebase) 커밋 히스토리에 머지 기록 없이 코드를 합칠 수 있는 방법이 있다. A 브랜치와 B 브랜치가 있다. 두 브랜치에서 각각 작업을 한 내역이 있는데 이걸 A 브랜치에 합치려고 한다. 두가지 방법이 있는데 그 첫번째는 A 브랜치에서 B 브랜치를 머지하는 방법이다. git merge B브랜치명 그런데 이렇게 하면 커밋 히스토리에 머지를 한 내용이 남는다. 만약 머지한 내용을 남기고 싶지 않고 원래 한 브랜치에서 작업한 것처럼 보이게 하고 싶다면 어떻게 해야 할까? 커밋 히스토리를 깔끔하게 관리할 수 있는 git rebase 그럴 때에는 rebase 명령어를 사용하면 된다. git rebase [합치고 싶은 브랜치명] rebase는 단어 그대로 베이스를 다시 설정한다는 의미이다. 위의 사진처럼 커맨드를 실행시킨 .. 2022. 12. 13.
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.