이 팁은 다음의 내용을 안내 해드립니다.
- STM32 CubeMX과 KEIL uVision 개발환경에서 Git으로 버전 관리 시스템의 설정 방법을 알아봅니다.
- 컴파일과 디버깅시 불필요한 파일들이 Commit 되지 않도록 하는 방법을 알아봅니다.
- 신뢰할 수 있는 무료 온라인 Git 저장소를 제공해주는 곳을 알아봅니다.
또한 아직 버전 관리 시스템을 도입하지 않은 경우 아래의 필요성을 검토해볼 수 있습니다. ㅡ 참고
- 내가 작성한 코드를 Git 온라인 저장소에 안전하게 보관하여 로컬PC가 고장 나서 코드가 공중 분해되는 끔찍한 사고를 미연에 방지합니다.
- 개발 중 알 수 없는 문제가 발생하여 과거의 코드로 즉시 되돌리거나 참고하여 문제를 재빨리 해결하여 많은 시간을 절약합니다.
- 2명 이상의 개발자와 협업 하여 작업 효율을 높입니다.
uVision IDE 자체에도 Git 버전 관리 시스템이 있는데 개인적으로 나사가 몇 개 빠진기분이라(쑻) 그래서 IDE 외부에서 Source Tree란 프로그램으로 코드 변경사항을 관리해줍니다. 혹시나 이미 IDE 내 버전 관리 시스템에 만족하고 계시면 뒤로가기 버튼을 살포시 눌러주시고, 다른 버전 관리 시스템을 사용중이거나 더 좋은 방법이 있다면 댓글로 알려주시면 본 글에 반영할 수 있도록 하겠습니다.
준비물
- KEIL uVision 5 (MDK-ARM) – https://www.keil.com/download/product/ 여기서 MDK-ARM 을 적당히 다운로드하여 설치합니다. (이 팁을 보고 계신다면 이미 설치하셨을 것입니다.)
- Source Tree (Git GUI) – https://www.sourcetreeapp.com/ 여기가서 적당히 다운로드하여 설치합니다.
- GitHub나 BitBucket 저장소 생성
오픈소스를 위한 프로젝트라면 GitHub 에서 무료 계정 하나 만들어서 저장소 생성하시면 되고, 코드 공개 안 할 프로젝트는 GitHub 유료 결제를 하거나 5명 이하의 소규모 팀인 경우 BitBucket을 사용하면 무제한 Private 저장소 생성이 됩니다.
- GitHub 저장소 생성방법 ㅡ https://help.github.com/en/articles/creating-a-project-board
- BitBucket 저장소 생성방법 ㅡ https://confluence.atlassian.com/bitbucket/create-a-git-repository-759857290.html
온라인 저장소 생성과 복제
저는 BitBucket을 수년 전 부터 쓰고 있었고 현재도 사용하는데 문제가 없어서 BitBucket 기준으로 안내해 드립니다. 우선 https://bitbucket.org 에서 계정을 만든 후 https://bitbucket.org/repo/create 에 가서 저장소를 적당히 만들면 Clone 하라고 링크를 하나 주는데, 이 링크를 Source Tree의 Clone 탭에 가서 프로젝트 폴더로 적당한 위치로 Clone합니다. 이때 로그인 창이 뜨면 지시에 따라 적절히 로그인합니다.
프로젝트 명이 그 영화가 생각난다면 기분탓입니다.
Clone이 완료되었습니다. 이제 Open in Exploere를 누른 후 보여지는 경로에 STM32 개발 환경을 만들 것입니다.
프로젝트 생성
STM32 CubeMX의 설정은 앞서 확인한 경로로 입력하고 적당히 설정 후 GENERATE CODE를 눌러서 프로젝트를 생성합니다.
STM32 CubeMX로 생성한 프로젝트 파일들을 확인 할 수 있습니다.
.gitignore 로 불필요한 파일 배제대
이때 Source Tree – Working Copy 에서 추가되거나 변경된 파일 리스트를 확인 할 수 있는데, 이것들을 Commit 하기 전에 우선 컴파일이나 디버깅 할 때 생성되는 임시 파일들과 불필요한 쓰레기들이 저장소에 올려지지 않도록 해야합니다. 따라서 아래의 코드를 Sublime Text 같은 코드 에디터로 작성하여 프로젝트 폴더에 .gitignore 파일명으로 저장합니다.
아래 규칙에 맞는 파일들은 Commit 대상에서 제외됩니다.
*.bak *.tmp .mxproject MDK-ARM/* !MDK-ARM/*.uvprojx !MDK-ARM/*.s !MDK-ARM/*.uvoptx
또는 파일을 다운로드하여 프로젝트 폴더에 넣습니다.
커밋과 푸시
Source Tree – Working Copy 화면에서 파일 변경 내역을 확인 할 수 있습니다. 변경 내역에 핵심만 입력하고 Commit 버튼을 눌러줍니다. 여기서는 프로젝트를 금방 막 생성했으니 Initial commit을 입력하고 Commit 합니다. 이후 Commit 내역에 문제가 없으면 Push 버튼을 눌러서 이때까지 본인의 PC에서만 저장된 변경 내역을 온라인 저장소(BitBucket)에 올립니다.
앞으로 코드를 작성할 때 코드 수정 사항이 모두 이 화면에서 표시되고 관리 할 수 있습니다.
사용 중인 인터넷 상태에 따라 시간이 다소 걸릴 수 있습니다.
Push 후 BitBucket 접속 후 저장소를 보면 Commit 내역이 정상적으로 올라간 것을 확인 할 수 있습니다. 여기까지 STM32 개발 환경에서 Git 세팅 방법에 대해 알아보았습니다. 이후 Git을 사용하여 버전을 관리하는 방법은 너무 나도 방대하기에 본 글에서 모두 설명할 수 없으므로 구글에 ‘sourcetree git 사용법‘ 등의 키워드로 검색하면 관련 자료를 확인 할 수 있습니다.
참고 되셨으면 좋겠습니다.