일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- github
- 유니티
- 안드로이드
- 목서버
- 게임개발
- 2d게임
- Kotlin
- 티스토리
- 타이쿤
- 서브모듈 sourcetree
- java
- github submodule
- 서브모듈 pull
- 안드로이드개발
- 앱
- 쿼터뷰
- Unity
- 카페오냥
- 코틀린
- Android
- Android Studio
- 앱개발
- 개발
- firebase
- gitlab submodule
- GIT
- 안드로이이드 submodule
- 내 맘대로 정리한 안드로이드
- submodule sourcetree
- DataBinding
- Today
- Total
Uing? Uing!!
[Git 삽질기록] 'Fork 떠서 작업한다'는 게 뭐죠? 본문
서론
입사 직후에는 간단한 온라인(ㅠㅠ) 온보딩과 팀원분들과의 온라인(ㅠㅠ) 티타임이 있었다.그 이후에 내가 맡게 된 일은 실제 서비스에 적용되는 업무는 아니고, 트레이닝 목적의 두 달짜리 과제였다.
그런데 팀장님이 이렇게 말씀하셨다.
"이 프로젝트를 개인 리포지토리로 Fork를 뜨고 Clone해서 Remote 브랜치로 작업하는 걸로 합시다."
?
그게 뭔데...
그거 어떻게 하는 건데...
깃을 개인적인 프로젝트 버전관리용으로만 간단하게 사용하던 나로서는 처음 들어보는 용어였다.
뭔가... Fork면... OS에서 새 프로세스 fork()하는 거랑 비슷한 맥락 같기도 하고... (대충 맞는 듯하다)
그럼 이거를... 원래 작업을 내 개인 저장소에 복사해서... 뭔가... 작업...
대충 뭔가 느낌은 왔지만, 여전히 확신이 서지 않아서 결국 구글링으로 해결했다.
본론
Fork라는 말의 의미는 예상한 대로가 맞다. 아래는 위키에 작성되어 있는 포크(소프트웨어 개발)의 개요이다.
"포크(fork) 또는 소프트웨어 개발 포크, 프로젝트 포크(project fork)는 개발자들이 하나의 소프트웨어 소스 코드를 통째로 복사하여 독립적인 새로운 소프트웨어를 개발하는 것을 말한다. 오픈 소스 소프트웨어의 경우 소스 코드가 공개되어 있고, 프로젝트에서 소스 코드를 통째로 복사하는 것이 허용되는 라이선스를 채택한 경우, 원저작자에 의해 재사용을 허가받은 코드이기에 포크를 통한 새로운 소프트웨어 개발이 가능하다. 레드햇 리눅스(Red Hat Linux)를 포크하여 CentOS가 생겼고, 데비안(Debian)을 포크하여 우분투(Ubuntu)가 생겼고, MySQL을 포크하여 MariaDB가 생겼다."
결론은 본래 프로젝트를 다른 깃헙 저장소로 복사해서 거기에서 추가적인 작업을 한다는 얘기다.
이걸 하기 위한 방법은 아주, 아주, 간단하다.
1. Fork할 대상인 리포지토리에 접근한다.
당연하게도, 우선 내 저장소로 Fork할 github 저장소에 접속해야 한다.
2. 오른쪽 위의 Fork 버튼을 누른다.
github 저장소에 접근하면 오른쪽 상단에 내 프로필이 있다.
그 바로 아래에 버튼을 보면, Fork, 436(포크된 횟수)이라고 되어 있다. (아래는 유명한 RxKotlin 저장소의 정보이다.)
여기에서 Fork라고 적혀 있는 부분을 클릭하면, 뭔가 클릭은 되는데 알림창도 제대로 안 뜬다.
대신에 화면이 바뀌면서, 원래 리포지토리가 아닌 (내 계정)/RxKotlin으로 저장소 위치가 바뀐다.
다소 비직관적이지만 어쨌든 간단하게 포크가 완료된 것이다!
이제 내 계정 내에 만들어진 복사본 저장소의 정보를 clone하여 가져오고,
혼자 공부하면서 작업했듯이 사용하면 된다.
원본 저장소에도 반영이 되느냐? 당연히 아니다.
대신 Pull Request라는 방법이 있다.
이에 대해서는 다음 포스팅에서 다루고자 한다.
'Git' 카테고리의 다른 글
[Git] git submodule 한 번에 pull하기 (sourcetree에서 하는 방법 포함) (0) | 2024.11.07 |
---|---|
[Git] github actions로 README.md 자동생성하기 (0) | 2022.04.28 |
[Git 삽질기록] 'PR을 올리다'? Pull Request에 대해서 (1) | 2020.10.01 |
[Git 삽질기록] Git push 이후에 작성자를 수정하고 싶을 때 (0) | 2020.09.10 |
[Git 삽질기록] 이미 Push한 커밋 메시지 수정하기 (0) | 2020.08.08 |