들어가며
GitHub은 협업을 위해 사용할때 그 진가가 드러나게 됩니다, 기초적인 내용의 협업 방법을 알아보겠습니다
전 TIL에서 원격 저장소에 파일을 업로드하는 것 까지 설명했으니 참고 바랍니다
2024.09.09 - [TIL] - 24.09.09 TIL - GitHub와 GitHub Desktop 설치 및 사용법
기초 용어
원격 저장소 (Remote Repository) : 프로젝트의 중앙 저장소, 클라우드 저장소라고 생각할 수 있다
로컬 저장소 (Local Repository) : 내 PC에서 관리하는 저장소, 클라우드와 소통하는 단말기라고 생각할 수 있다
브랜치 (Branch) : 원격저장소가 지갑이라고한다면 브랜치는 지갑안에 카드를 넣을 수 있는 공간이라고 생각 할 수있다, 새로운 브랜치를 만들어 어떠한 작업을 독립적으로 진행할 수 있는 공간을 마련해주고 필요에 따라 서로 결합할 수도 있다
히스토리 (History) : 아래 설명할 작업들처럼 변경사항이 있을시 자동으로 기록되어 변경내용, 시기 등을 추적할 수 있도록한다
클론 (Clone) : 원격 저장소의 전체 내용들을 로컬 저장소로 복사하는 작업이다
커밋 (Commit) : 로컬 저장소의 변경사항을 저장하고 기록하는 작업, 필요하다면 커밋 전의 시점으로 상태를 되돌릴 수 있다
푸시 (Push) : 커밋이 완료된 변경 사항을 원격 저장소로 업로드 하는 작업
풀 (Pull) : 원격 저장소의 변경 사항을 로컬 저장소로 가져오는 작업
병합 (Merge) : 서로 다른 브랜치를 하나로 합치는 작업, A작업물과 B작업물을 하나로 합쳐 C로 만들어내는 작업
기초적인 사용법
1. Dev Branch를 새로 만듭니다 , Dev Branch는 Main의 내용을 그대로 가지고 있습니다
2. 각 각의 팀원들의 로컬 저장소는 이것을 클론하여서 원격 저장소와 동일한 상태를 가지도록 합니다, Pull origin에 새로운 변경 사항이 나타나게되고 이것을 아래의 파란 버튼을 이용해 변경사항을 내 로컬 저장소로 가져옵니다
3. 자신이 작업할 공간인 새로운 브랜치를 생성합니다
4. 브랜치의 베이스를 Dev로 설정한뒤 브랜치 이름을 명명합니다
5. 로컬에 새로운 브랜치를 만들게 됨으로써 원격 저장소와의 차이가 발생하게 됩니다, 원격 저장소에는 브랜치가 아직 Dev까지만 존재하는 상태입니다
6. Publich branch를 이용해 원격 저장소에도 새로운 브랜치가 생겼다는 사실을 전달해줍니다.
7. 이제 원격 저장소에도 새로운 브랜치가 생겼습니다
8. 같이 일하는 동료 개발자 B씨는 Fetch origin을 이용해 원격 저장소로부터 변경 사실을 가져오면 됩니다
9. A씨가 새로운 작업을 하고나서 Dev-Adeveloper에 커밋했습니다
10. 그리고 그 내용을 푸시 했습니다(Undo로 취소가능)
11. 원격 저장소의 Dev-Adeveloper의 브랜치에 변경사항이 적용되었습니다.
12. 그러나 Dev와 Main 브랜치에는 이러한 변경사항이 적용되어있지 않습니다
13. AudioManager의 테스트가 완료 되었다고 생각한 A씨는 Dev에도 이 내용을 적용하기위해 풀 리퀘스트를 보냅니다
14. Create Pull Request를 누르면 브라우저가 열리며 아래의 내용을 작성합니다, base는 변경된 내용이 적용되어야할 곳 입니다
15. Pull requests에 새로운 알림이 생성됩니다
16. 해당 리퀘스트에 들어가서 내용을 확인 후 문제가 없다고 판단된다면 Merge pull request를 누릅니다
17. 확인창이 나오는데 Confirm merge를 눌러 완료하거나 Cancel을 눌러 취소 합니다
18. 상태가 변화하며 옵션으로 Delete branch를 수행할 수있는데 필요하다면 해당 브랜치를 삭제할 수 있습니다
19. Dev 브랜치를 확인해본 결과 변경사항이 잘 반영되어있음을 알 수 있습니다
20. Dev의 내용을 Main에 반영하고 싶다면 위의 절차대로 다시 Create pull request를 만들어 반복하면 됩니다
20. 하지만 Main 브랜치는 관리자의 승인없이 수정할 수 있다면 여러측면에서 문제가 발생할 수 있기때문에 사전에 룰을 지정해주어야 합니다(선택 사항)
21. 위의 과정을 다시 거쳐서 풀리퀘스트를 완료 한 후 main 브랜치를 다시 보면 잘 반영된것을 확인 할 수 있습니다
마무리
지금까지 GitHub의 여러 기능들을 이용하여 원격 저장소와 로컬 저장소의 상호작용 방식을 알아봤습니다
다음에는 Add rule, 규칙 설정에 대하여 알아보겠습니다
올바르지 못한 내용은 댓글로 알려주시면 수정하겠습니다
'코드 및 공부 > 기타' 카테고리의 다른 글
속성(Attributes) (1) (0) | 2024.09.19 |
---|---|
Git Commit Message Convention (0) | 2024.09.13 |
브랜치 전략(Git Flow) (0) | 2024.09.12 |
GitHub의 Branch protection rules (0) | 2024.09.11 |
GitHub와 GitHub Desktop 설치 및 사용법 (1) | 2024.09.09 |