월요일 타임어택할때 튜터님의 깃허브에서 테스트 레포지토리를 fork 해야했다.
저번 팀플때는 PR 만 했어서 이번에 fork 를 처음하다보니.. 체크박스를 선택해놓고 fork 를 진행해서 main 브랜치만 복사되었다.
2개의 타임어택 문제 중 계산문제만 fork 해온 레포지토리에 올렸고,
TodoList는 새로운 레포지토리 만들어서 clone 으로 받아왔다..!
이것도 push 할때 문제가 있었는데, 오랜만에 겪는 git 문제들이라 남겨보려고 한다.
+ 팀장님의 브랜치 사용 꿀팁까지!

📍 튜터님 코멘트
과제 내드리면 본인 github 으로 fork 하실 때 그림의 체크박스 해제하시고 포크 진행하셔야 모든 브런치 내용들이 여러분 깃헙레포로 복사가 됩니다.
그리고git remote -v명령을 통해서 현재 origin 으로 등록되어 있는 github 레포 url 이 본인 계정으로 되어있는 지 한번 확인하신 후에 push 하시는 것을 권장 드립니다.
만약 본인 레포 url이 아니라면git remote remove origin으로 origin 삭제하신 뒤에
본인 레포url로git remote add origin 본인레포url로 origin 설정 다시 하시고 push 하시면 됩니다.

❗주로 작업 중 다른 브랜치로 전환해야 할 때 사용한다.
❗이를 통해 작업 중 다른작업을 할 수 있고, 나중에 다시 원래 작업을 이어갈 수 있다.
💡 작업 디렉토리에 변경 사항이 있는 경우, Git은 브랜치를 전환하지 않고 변경 사항을 유지한다. 이는 작업 중인 내용이 손실되는 것을 방지하기 위한 것이다.
git stash, git stash pop 에 대해 알게되었다.
- hw1. 브랜치에서 작업 중이다가 hw2. 브랜치로 이동해야하면,(+commit 하긴 싫고)
git status로 hw1. 브랜치 변경사항 확인후,git stash로 임시저장.
-> 저장된 변경사항은 "stash" 라는 장소에 보관된다.git checkout <branch name>으로 브랜치 전환- 다시 원래 브랜치에서 작업하려고하면, 브랜치 이동 후
git stash pop을 통해 가장 최근에 저장된 stash 내용을 작업 디렉토리로 가져오고, 해당 stash 내용을 삭제한다.- 작업을 이어서 하면 된다.
-> git stash pop 명령어를 사용하면,
가장 최근에 저장된 stash 내용을 작업 디렉토리로 가져오고, 해당 stash 내용을 삭제한다.
-> git stash apply 명령어는
stash 내용을 가져오지만 stash 내용은 그대로 남는다.
둘을 비교하자면
git stash pop은 stash 내용을 가져오면서 해당 stash를 삭제하는 반면,
git stash apply는 stash 내용을 가져오기만 한다.
일반적으로
git stash pop이 git stash apply보다 더 많이 사용된다.
대부분의 경우 stash된 내용을 한 번만 적용하면 되므로, git stash pop이 더 편리하다.
또한 git stash pop은 충돌 해결 과정이 포함되어 있어 한 번에 처리할 수 있지만, git stash apply는 충돌 해결을 별도로 해야 한다.예상대로 stash apply를 계속 사용하면 stash 목록이 누적되어 메모리 사용량이 증가할 수 있다.
이 경우 주기적으로git stash clear를 실행하여 stash 목록을 정리해줘야 한다.
따라서 메모리 사용량 관리 측면에서도 git stash pop이 git stash apply보다 더 효율적이다.
git stash apply는 stash된 내용을 여러 번 적용해야 할 때 유용하다.
1. 병합 중 충돌 해결
브랜치를 병합하는 중 충돌이 발생했을 때, git stash apply를 사용하면 충돌을 해결하기 전에 작업 내용을 임시로 저장할 수 있다. 충돌을 해결한 후 git stash apply로 작업 내용을 다시 적용할 수 있다.
2. 실험적인 변경 사항 저장
실험적인 변경 사항을 git stash apply로 저장해두었다가, 나중에 필요할 때 다시 적용할 수 있다. 이렇게 하면 실험적인 변경 사항을 안전하게 관리할 수 있다.
3. 브랜치 간 작업 내용 공유
한 브랜치에서 작업한 내용을 다른 브랜치에 적용해야 할 때 사용하면 편리하다.
작업 내용을 stash에 저장한 후 다른 브랜치로 전환하여 git stash apply로 적용할 수 있다.