TIL(Today I Learned)

12월 3일(목)

학습내용

  • 각자 구현한 것을 합쳤는데, 스토리보드에서 충돌이 많이나서 merge 취소 방법을 알아보았다.
    • “git merge —abort”
    • “git reset —hard ORIG_HEAD” // 워킹디렉토리 변경사항 유지 안하고 머지 리셋.
    • “git reset —merge ORIG_HEAD” // 워킹디렉토리 변경사항 있으면 이를 유지하면서 머지 리셋.
  • Git에서 헷갈리는 용어를 다시 찾아보았다.
    • git에서 Working directory와 Working tree는 동일한 의미이다.
    • git에서 Staging area(Staging)와 index는 동일한 의미이다.
    • ORIG_HEAD는 HEAD 바로 이전을 참조하는데, merge나 pull 이후에 생성된다. merge나 pull 이후에 잘못될 경우 사용하라고 있는 HEAD이다.

문제점/고민한점

  • 협업시 스토리보드 xml 내용이 충돌하는데 이를 어떻게 방지 할 수 있을까?
  • 스토리 보드의 코코아 터치 플러그인 버전이 갑자기 변경되었는데, 이를 가장 최신 커밋으로 되돌리기 위해선 어떻게 해야할까?
  • 소대의 커밋을 받으면 스토리 보드에서 코코아 터치 플러그인 버전이 자꾸 바뀌는 문제가 발생하는데 왜 그럴까?

해결방법

  • 협업시 스토리보드 xml 내용이 충돌하는데 이를 어떻게 방지 할 수 있을까?
    • 첫번째 회원가입 화면을 서로 스토리보드를 각자 구현해서, 이를 합칠때 여러 부분에서 충돌이 발생하였다. 스토리 보드 충돌은 해결하기가 복잡하므로 웬만하면 스토리보드를 수정하지 않는 것이 좋다는 교훈을 얻었다. 왜 몇몇 회사에서는 스토리 보드를 안쓰고 코드로 뷰를 구현하는지 알 것 같았다.
    • 두번째 회원가입 화면 부터는 뷰 구현을 각자 진행하지 않고 같이 진행하고, 기능을 각자 구현하는 것으로 정하였다. 그래서 이후에 뷰 수정이 최소가 되도록 하였다.
    • 미래에는 뷰 구현과 기능 구현을 잘 분리해서 업무 분담을 해야겠다.
  • 스토리 보드의 코코아 터치 플러그인 버전이 갑자기 변경되었는데, 이를 가장 최신 커밋으로 되돌리기 위해선 어떻게 해야하지?
    • “git checkout 파일이름” 을 사용하면 워킹 디렉토리의 특정 파일을 최근 커밋으로 되돌릴 수 있다. (브렌치 변경 기능만 있는줄 알았다.)
  • 소대의 커밋을 받으면 스토리 보드에서 코코아 터치 플러그인 버전이 자꾸 바뀌는 문제가 발생하는데 왜 그럴까?
    • 소대 Xcode 버전이 내 것과 다르기 때문에 발생하는 문제였다. 소대는 14.2 가장 최신 버전이었고, 내꺼는 14.1이였는데, 혹시 0.1 차이로 문제가 생길까 싶었는데 문제가 생겼다. Xcode 업데이트로 해결하였다.