2024.10.22(화)
팀 프로젝트를 마치며 그동안 발생한 문제들에 대해 해결했던 방법을 정리하는 Trouble Shooting을 작성해보도록 하겠다.
Scene에서 작업해야 할 내용이 각자 있어서, 나의 작업 Scene을 따로 만들어서 작업을 하였는데, 코드를 병합할 때, 여러가지 컴포넌트들에서 NullReference가 일어나는 문제가 발생했다.
Scene에서 작업한 오브젝트들을 다른 Scene으로 옮길 때, 할당되어 있던 컴포넌트들의 참조가 풀리면서 script에서 해당 컴포넌트들을 찾을 수 없는 문제였고, 다시 컴포넌트를 할당해주어 해결했다.
Dev브런치에서 가져온 코드를 이용해 작업하려고 했는데, 여러가지 오류가 있어서 작업을 마무리하고 다시 Merge해서 가져오려고 Merge한 내용을 Revert하였는데 나중에 다른 팀원분이 작성하신 파일이 없어지는 문제가 발생했다.
나중에 살펴보니, 내가 Revert로 특정 코드 파일을 없앤다는 내용이 Dev로 머지할 때 적용되면서, 팀원분이 작성하신 파일이 없어지게 되는 구조였다.
그래서 Revert를 다시 알아보니, Revert는 돌아간다는 뜻으로 그 시점으로 회귀하는 거라고 볼 수 있다.
그런데, 여기서 문제는 내가 돌아간 시점에는 A라는 파일이 없는 시점이다. 그러므로 가장 최신에 Merge를 한 내가 A라는 파일이 없는 시점으로 회귀를 했으므로, 다른 사용자가 작업한 A라는 파일이 내가 Dev에 Merge를 함으로서 없어진 것이다.
내가 원하던 것은 Merge 취소였는데, 과거로 회귀하는 동작이 작동한 것이다.
이런 일이 일어난 이유는 Merge를 한 후 바로 Push를 눌렀기 때문이다.
GitHub에서는 Undo를 통해 작업 내용을 취소할 수 있는데, 이미 Push를 진행한 작업은 취소를 할 수 없다.
그러므로, Merge를 해와서 Push를 하기 전 먼저 프로젝트를 확인하여 이상이 없는지 체크한 후, Push를 하는 습관을 들이도록 해야 한다.
그렇지 않으면, 만약 Merge 해온 프로젝트가 망가졌을 때, 본인 브랜치는 되돌릴 수 없는 강을 건너게 된다.