본문 바로가기

버전관리17

커밋 여러개를 하나로 만들고 싶을 때(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) 어떤 작업을 하던 중, 급하게 처리해야 하는 다른 작업건이 생겼다면, 그런데 그 우선작업건이 다른 브랜치에서 해야 하는 일이라면 어떻게 해야할까? 작업을 마무리하지 못한 상태에서 다른 브랜치로 이동하게 되면 아래와 같은 에러가 발생한다. 현재 브랜치에서 변경된 내용을 커밋하지 않았기 때문에, 아직까지 작업한 내용이 모두 사라지게 된다고 경고하는 것이다. 그렇다고 작업이 완료된 것이 아니니 커밋을 하기에도 부담스럽고... 하지만 우리의 깃에는 없는 것 빼고 다 있다. (훗) 이런 상황을 대비해서 코드를 임시저장할 수 있는 커맨드가 있다. 작업하던 코드 임시저장하고 싶을 때 아래와 같은 커맨드를 사용해서 작업하던 코드를 임시저장할 수 있다. git stash git stash를 한국어로 번역하면 '숨기는 장.. 2022. 12. 14.
git reset 되돌리고 싶을 때 커밋 리스트 확인하기(git reflog) 프로젝트를 시작한 후에 이런 저런 작업들을 해서 많은 커밋들이 쌓였다. 작업을 하다가 특정 시점으로 돌아가고 싶어서 git reset 명령어를 실행시켰는데, 그것이 실수였다면... 다시 예전으로 돌아가야 한다면...🫠 그럴 때는 어떻게 해야 할까? 먼저 아직까지 한 커밋리스트를 살펴 보았다. git reset 되돌리는 방법을 설명하기 위해 일단 첫번째 커밋인 Create calculator.py and Lisence 으로 돌아가보도록 하겠다. (테스트를 하면서도 되돌리는 걸 실패할까봐 무서운 코린이...😦) 되돌리고 싶은 첫번째 커밋 아이디를 확인한 후에 git reset --hard 1ec2 라는 명령어를 실행시켰다. 그리고 다시 커밋 히스토리를 확인해 보았다. 엌... 다 없어져 버렸어... 일단 r.. 2022. 12. 10.
최신 커밋(commit) 내용 수정하기(커밋 메세지 수정 아님) 커밋 메세지를 입력하고 커밋을 모두 완료했는데, 오탈자를 발견하거나 혹은 내용을 수정하고 싶을 때가 있을 것이다. 물론 내용을 변경한 후에 다시 커밋을 해도 되지만 그러면 불필요한 커밋 히스토리가 남게 된다. 깃에서는 본인이 한 최신 커밋 내용을 수정할 수 있는 기능을 제공하고 있는데 이번 포스팅에서는 그 방법에 대해 설명해보려고 한다. git log --pretty=oneline 명령어를 사용해서 아직까지 했던 커밋 히스토리를 살펴 보았다. (이 명령어에 대해 더 자세히 알고 싶다면 요기 클릭 → https://heina-fantasy.tistory.com/268) 지금부터 아래의 히스토리 중, 가장 마지막에 커밋한 Update commit_test.txt의 내용을 수정해 볼 예정이다. 먼저 해당 파일.. 2022. 10. 19.
아직까지 했던 모든 커밋 히스토리 확인하기(git log) 우리는 프로젝트를 진행하며, 아직까지 했던 모든 커밋 목록을 확인하고 싶을 수도 있다. 커밋 히스토리(Commit History)라고 하는데 이번 포스팅에서는 이를 확인하는 방법에 대해서 정리해보려고 한다. 커밋 히스토리 확인하는 방법 커밋 히스토리를 확인하는 명령어는 log 이다. 아래와 같이 터미널을 실행하고 해당 디렉토리로 이동해서 git log 명령어를 실행하면 아직까지 했던 커밋의 목록을 순서대로 볼 수 있다. git log 이러한 커밋 히스토리를 볼 때 주의해야 할 점은, 가장 처음에 한 커밋이 가장 아래에 위치해 있다는 것이다. 리스트가 거꾸로 표시되기 때문에 위에 있을수록 최근에 한 커밋이다. 히스토리에서 확인할 수 있는 내용은 아래와 같다. 커밋 아이디(= 커밋 해시 / commit 뒤로.. 2022. 10. 14.
Github에 있는 프로젝트를 내 PC로 가져오는 방법 깃허브(Github)에는 오픈 소스 프로젝트(Open Source Project)가 많다. 유명한 오픈 소스 프로젝트 몇가지를 예로 들자면 아래와 같다. React Native(리액트 네이티브, 모바일 UI 프레임워크로 페이스북에서 만들었음) https://github.com/facebook/react-native GitHub - facebook/react-native: A framework for building native applications using React A framework for building native applications using React - GitHub - facebook/react-native: A framework for building native applicati.. 2022. 10. 12.
깃허브에서 협업을 위한 Collaborators 추가하기 이번 포스팅에서는 여러 사람과의 협업을 위해 깃허브(Github)에 동료(Collaborators)를 추가하는 방법에 대해서 설명하려고 한다. 깃허브 홈페이지(https://github.com/)에서 로그인하고 해당 디렉토리로 이동한다. Code, Issues, Pull requests... 메뉴바의 마지막에 위치한 Settings를 클릭한다. 그 후 변경되는 페이지 좌측 메뉴바에서 Collaborator를 선택한다. 협업자를 추가하려면 비밀번호 인증이 한 번 더 필요하다. 비밀번호 입력 후에 화면이 바뀐다. 한 번도 동료를 추가한 적이 없다면 중간 부분에서 You haven't invited any collaborators yet.라고 쓰여있는 박스를 발견할 수 있을 것이다. 텍스트 아래에 있는 Add.. 2022. 10. 5.
Github에 등록된 최신 버전을 PC(Local Repository)로 가져오기(git pull) 협업 시에 다른 사람이 코드를 수정해서 깃허브에 업로드해 두었다고 가정해보자. 이제 내가 작업을 할 차례인데 최신 버전의 파일에 이어서 작업을 해야 충돌이 발생하지 않을 것이다. 그러려면 Remote Repository에 있는 내용을 Local Repository로 가져와야 하는데, 이럴 때 사용하는 명령어가 있다. git pull 이라는 명령어를 사용하면 Github에 업로드되어 있는 최신 버전의 파일들을 내 PC의 프로젝트 폴더에 동기화(?)시킬 수 있다. git pull 지난 포스팅에서 READMD.md 파일을 새로 만들어서 깃허브에 업로드해두었다. 그런데 깃허브에 있던 README.md 파일의 내용이 일부 변경되었다. 그래서 터미널을 실행하고 해당 디렉토리로 이동한 후에 git pull 명령어를 .. 2022. 10. 4.
Local Repository에서 작업한 내용 Github에도 반영하기(git push) 지난 포스팅에서 혼자 PC에서 작업하던 파일을 깃허브(Github)에 업로드하는 방법에 대해서 설명했다. 업로드를 해 두었다고 해서 내 PC에 있는 프로젝트 폴더(Local Repository)와 깃허브의 Remote Repository에 있는 폴더가 연동되어 자동으로 변경되는 것은 아니다. 그렇다면 내 PC에서 작업한 내용을 어떻게 해야 깃허브에 반영할 수 있을까? 그럴 때에 사용하는 명령어가 있다. Local Repository 변경사항을 Github에 반영하기 내 PC의 프로젝트 폴더에 README.md 파일을 하나 생성했다. 그 다음 git add 명령어를 이용해서 변경된 파일을 모두 Staging Area로 이동시키고 commit 했다. 아래와 같이 한 개의 파일을 커밋하는 데 성공했다. git.. 2022. 10. 4.