오늘 새벽에 과제를 다 만들고 푸쉬를 한 뒤 깃허브에 잘 올라갔는지 확인을 했는데 깃 충돌이 또 발생했다.
이전에 충돌이 한번 나서 해결 못하고 올린 pr을 임의로 close하고 다시 올렸었는데 트레이너님이 pr을 다시 보내지 말라고 하셔서 이번에는 충돌 난 걸 해결해야 했었다.
근데 나만 충돌이 난 줄 알았는데 동료분들 모두 다 충돌이 나고 pr 올린 게 이상한 곳으로 올라가는 현상이 발생했다.
뭐가 문제인지 확인하다가 fork가 이상하게 돼있는 것을 발견했다.
fork를 맨 처음에 1mptera 레파지토리에 있는 것을 fork해왔는데 새벽에 보니까 내가 1mptera에서 fork해온 내 깃허브의 레파지토리를 동료분들이 fork를 하고 있었다.
그래서 동료분들이 푸쉬하면 내 깃허브로 과제가 제출되고 있었다.
왜 내 걸로 왔지?? 내가 뭔가 깃 명령어를 잘못 쳐서 일어난 일인가..??
내가 잘못한 거 같아서 일단 동료분들에게 사과를....
뭐가 문제인지 모르니까 어떻게 해결해야 하는지도 몰랐다.
다음날 아침에 귀신같이 트레이너님이 깃허브에 문제가 생긴 걸 아시고 오셨다.
결론은 내가 잘못해서 일어난 문제가 아니었다. 깃허브 레파지토리 권한을 변경하면서 마지막에 pr 보낸 사람에게 소유권이 넘어갔다고 하셨나? 아무튼 마지막에 pr 한 사람이 나여서 나한테 동료분들의 pr이 올라온 거였다.
깃을 이용하다 오늘같이 깃 충돌 같은 문제가 일어나면 어찌해야 할지 멘붕상태에 빠진다.
그래서 최대한 오류를 피하기 위해서 매일 쓰는 깃 명령어만 쓴다.
add, commit, push 이 세 가지 명령어를 사용하는 게 아니면 뭔가 잘못될까 봐 항상 두려웠다.
그래서 오늘 애매했던 깃허브 명령어를 어떤 상황에서 써야 하는지 트레이너님께 물어봤다.
fetch 랑 rebase를 트레이너님이 해야 한다고 하신 적이 많아서 언제 왜 해야 하는지도 모르고 사용했었는데 트레이넘한테 물어보면서 조금 알게 되었다.
일단 fetch를 하면 원격 저장소의 커밋들을 나의 로컬 저장소로 가져오는 기능이다.
그리고 fetch는 자동으로 병합이 되지 않기 때문에 내가 직접 확인을 한 후에 병합할 수 있다는 장점이 있다.
fetch에 대해 알고 나니 언제 써야 하는지는 명확해졌다.
원격 저장소의 내용과 내 로컬 저장소의 내용이 다르면 fetch 후 rebase를 해서 같게 해 주면 된다고 하셨다.
rebase는 merge처럼 fetch로 가져온 커밋들을 병합해주는 명령어인데 rebase와 merge의 차이는 아직 공부하지 못했다.
그래서 rebase 명령어를 공부해볼 생각이다.
rebase 명령어를 모르고 쓰다가 언젠가 또 낭패를 맛볼 거 같기 때문에..
'성장이야기 > TIL' 카테고리의 다른 글
220812 TIL Layered Architecture란 무엇인가? (0) | 2022.08.12 |
---|---|
220811 TIL 공부하다 한번씩 찾아오는 무기력함 (0) | 2022.08.11 |
220809 TIL 의도적 수련 (0) | 2022.08.09 |
220808 TIL 할지 말지 고민이 된다면 해라! (0) | 2022.08.08 |
220807 TIL 처음은 항상 재밌다. (0) | 2022.08.07 |