티스토리 뷰
pull request 방법만을 보시려면 아래로 내려가 과정 부분을 보시면 됩니다.
상황
센서 작업을 위한 base pythone library 가 필요해서 깃헙을 뒤져서 하나 찾아냈다.
이미 라이브러리가 있으면 굳이 밑바닥에서 시작할 필요가 없다.
이를 기반으로 하나씩 필요한 기능을 만들어가는데, 개발하는 어플리케이션은
센서값을 반복해서 빠르게 읽어내야 했다. 여러 테스트와 개선을 이루었는데
그중에서 핵심적인 개선 부분을 하나 찾았다.
핵심 수정
read_byte_data() 2번 호출 → read_i2c_block_data() 1번 호출
센서의 두 레지스터의 바이트값을 각각 읽어서 하나의 16비트 정수로 만들어주는데
한번 읽을때마다 최소한의 delay 를 줘서 센서가 안정적으로 동작하게 되어 있었다.
그런데 i2c 는 연속된 두 레지스터는 한번에 읽을 수 있는걸로 알고 있었다.
i2c 통신에 사용된 smbus 라이브러리를 뒤적거려보니 과연 함수가 있었고
테스트 결과 동작을 확인하였다.
고마움과 귀찮음
만들어 놓은 라이브러리를 활용해서 개발한 고마움 과 다시 일일이 확인하고 정리하여
pull request 하기는 귀찮은 마음이 충돌했다.
절충해서 깃헙의 issue 에 의견을 올렸다.
그런데 확인하더니 pull request 해달라고 요청을 하는 주인장
극뽁
귀찮기는 한데 이참에 또 한번 pull request 연습하고 정리하자 싶었다. 현재 업무에서
많은 사람들이 협업을 하며 repository 를 공유하며 pull request 를 활용할 일은 없었기에
겸사겸사 동기부여를 하여 귀찮음을 극뽁함
→ 이번이 평생에 3번째 pull request 인듯
과정
- 상세 과정을 아래와 같이 정리해본다.
1. fork 한다
1) 원래 repository 에서 fork 한다
2) 그러면 내 계정에 fork 된 일종의 복제된 repository 가 생긴다
2. clone and branch
먼저 fork 한 것을 clone 으로 가져온다.
$git clone https://github.com/nicewook/Lidar-Lite.git
그리고 작업을 위한 branch 를 생성한다.
$git checkout -b faster_getDistance
이제 수정 작업을 할 준비가 되었다.
3. (optional) upstream 설정
계속 모니터링하고 pull request 를 해야 하는 상황이라면 아래와 같이 해주면 좋다
- fork 한 repository 는 remote 이름을 origin 으로 해둔 상황이고
- 원본 repository 는 upstream으로 설정해두는 것이다.
$git remote add upstream https://github.com/Sanderi44/Lidar-Lite.git
이렇게 origin, upstream 으로 각각 설정해두고 나면 언제든 upstream 에서 pull 로 땡겨와서
로컬의 repository 를 최신으로 유지할 수 있으며, 다시 이를 fork 된 repository 로 push 하여
upstream 의 최신코드 + 로컬에서 수정한 사항을 동기화 할 수 있다.
$ git pull upstream master && git push origin master
4. modify - add - commit - push
소스를 수정하고 (modify), staging (add) 한 다음
로컬에 commit 하고, origin 으로 push 해주면 pull request 를 위한 준비는 모두 끝났다.
5. pull request
깃헙 repository 로 가보면 방금 push 한 내용이 보이고, 그것을 pull request 할 수 있는 버튼이 생성되어 있다.
버튼을 누르고 pull request 를 하면 된다.
repository 주인장은 pull request 를 보고 추가 코멘트를 주거나, merge 를 할 것이다.
변경사항
'git' 카테고리의 다른 글
.git - 쩜깃의 이해 (0) | 2019.01.24 |
---|---|
git pull --rebase 를 쓰자 (4) | 2019.01.15 |
git commit 을 gpg 로 암호화하기 (0) | 2019.01.04 |
엉뚱한 branch에서 작업하고 commit 해버렸다면 (0) | 2018.07.04 |
node project 를 github에 올려보자 (2) | 2018.05.19 |
- Total
- Today
- Yesterday
- Bug
- bun
- 2023
- ChatGPT
- OpenAI
- folklore
- 영화
- JIRA
- intellij
- golang
- 노션
- Gin
- agile
- postgres
- API
- strange
- websocket
- 인텔리제이
- github
- 독서
- pool
- 잡학툰
- go
- 제이펍
- solid
- 독서후기
- Shortcut
- 체호프
- notion
- 클린 애자일
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |