일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 100 days of SwiftUI
- struct
- UserDefaults
- core data
- 데드락
- 가상 메모리
- Algorithm
- deadlock
- decode
- @state
- 동시성
- 프로세스 스케줄링
- Codable
- Linked List
- 앨런
- 알고리즘
- 인프런
- 상호배제
- scrollview
- async
- 운영체제
- Apple Developer Academy
- COLOR
- IOS
- forEach
- 비동기
- 오브젝트
- SwiftUI
- 동기화
- Swift
- Today
- Total
기어가더라도 제대로
(2) git&github 시작하기 본문
chapter 3 여러 명이 함께 Git으로 협업하기
소규모 인원이 협업을 한다면 브랜치를 만드는 전략으로 사용이 가능하고, 자기만이 변경가능한 브랜치를 인원수에 맞게 설정하는 것이 필요하다. 그 후에 최종 릴리즈를 위한 브랜치에 병합하는 과정이 필요하다.
새로운 브랜치를 만드는 것은 branch
이동하는것은 checkout
병합은 merge
예의 있게 합치는 것은 pull request[제가 만든 코드를 '당겨가 주세요' 정도로 해석(?)]
릴리즈는 tag를 달고 출시를 하면 편리하다.
소스트리에서 작업할 때 꼬리표(혹은 branch pointer)라는 것을 보게 되는데 이것이 어느 커밋에 위치한지 수시로 확인하다보면 어지럽기도 하다. 그러나 어느세 feature/detail-page, master, origin/master에 대해 이해하다 보면 익숙해지니 시간이 해결해주는 문제 같다.
conflict가 발생할 수 있는데, 이는 서로 다른 커밋에서 같은 코드를 수정하였을 경우에 발생한다. 크게 놀랄 것은 없고, 충돌이 난 해당 파일로 가서 메뉴얼하게 수정하면 되는 부분이다.(혹은 vs code에서 제공하는 편의 기능인 append both를 이용하면 된다)
천천히 따라하면 되는 챕터라 큰 문제는 없다. 다만... 실습을 진행하며 3~4번은 sourcetree:github 연동과 관련해서 문제가 발생해 시간을 잡아먹었다. 정말 답답했지만 오류 메시지를 구글링하고, github의 personal access token도 알아보고(모든 권한을 줌) git에서 처음 설정한 global 에 대해서도 다시 공부 할 수 있었다. 정말 의문은 소스트리에서 원격저장소로 push할 때마다 mac user pw를 물어 본다는 것인데 이게 정말 희안한게, 한번도 아니고 서너번 같은 비밀번호를 눌러야 push가 된다는 점이다. 정말 짜증나고 귀찮다. 이건 뭐 근거가 없는 상황이니 그냥 무작정 타이핑 할 수 밖에 없다. 책에는 sourcetree를 사용할 때 나오는 에러는 github 정책이 personal access token을 사용을 권장하기 전의 에러여서 일일히 오류를 해결하느라 시간을 많이 먹었다. 심지어 어제는 push명령어 하나를 실행하려고 2시간을 쓰니 더는 공부할 힘도 남지 않았다. 그치만 chapter3를 공부하고 난 다음엔, 혼자 작업하는 수준에서는 더 이상 소스트리가 무섭지 않다! 이것은 정말 큰 수확이다.
chapter 4 둘 이상의 원격저장소로 협업하기
원본저장소, 원격저장소 두 단어가 헷갈리지만 실습을 차근히 하다보면 이해되는 부분이다.
원본저장소 : base가 되는 저장소, 이미 권한이 있는 contributer들만 사용이 가능하고 외부 개발자는 바로 커밋을 날릴 수 없는 저장소
원격저장소 : 원본저장소에 숟가락을 올리려는 외부 개발자가 원본저장소 자체를 자기의 저장소로 fork해와 만든 저장소, 자기 맘대로 사용이 가능하다. 왜냐? 자기 저장소니까!
쉽게 chapter 3에서는 브랜치 별로 pull request를 했다면, chapter 4에서는 remote repository 별로 pull request를 한다고 생각하면 된다.
문제는 rebase인데 개념은 묶은 커밋을 새로운 커밋으로 이력을 변경해 merge 병합 대신 빨리감기 병합(영어로 뭐지?)을 하는 효과를 낸다고 한다. 후에 force push로 강제로 올려야 한다.
'기타' 카테고리의 다른 글
Git & GitHub ch7 --> 공부 할 때 마음가짐 (0) | 2021.11.17 |
---|---|
(3) 팀 개발을 위한 git github 시작하기 (0) | 2021.11.15 |
팀 개발을 위한 GIT, GItHub 시작하기 (0) | 2021.11.13 |
그림으로 배우는 네트워크 & swift playground (0) | 2021.11.11 |
Swift Playground 입문기 (0) | 2021.11.03 |