저는 기계전공자로 설계가 주업인데 부업으로 기계장치 펌웨어를 수정합니다.
C++ 가능해서 하다보니 점점 코드양도 늘어나고 복잡해지고 부업이 주업처럼 되어 가고 있습니다. (팀에서 코딩은 저만해서.. 설계는 모두 하지만)
제가 바라는 것은 펌웨어 수정 이력이 남고 저나 전문가가 영입되었을 때 이해할 수 있도록 바탕을 다지는 것인데요.
코드 통채로 폴더 복사해서 이력을 남기는 식으로 수년간 해오고 있습니다.
버전관리하고자 git을 어제 공부해서 잠깐 써봤습니다.
몇 시간 구글링해서 제가 이해한 내용이므로 틀리면 알려주세요.
https://backlog.com/git-tutorial/kr/ 참고한 사이트 중의 하나입니다.
Git client(?)라는 것을 깔고 이것을 쉽게 사용하게 해주는 TortoiseGit 을 설치하고 로컬저장소 생성하고
Github라는 원격저장소를 무료 가입 후 로컬과 연결해서 커밋, 푸쉬, 풀 하면서 자료가 올라가고 내려오는 것까지 해봤습니다.
ultraedit를 사용했는데 visual studio code에서 로컬저장소 폴더를 열었더니 자동으로 git 저장소인지 인식하는지 커밋, 푸쉬가 되더라고요.
몇 시간 연습해보았고 이제 사용해보려고 하는데 tortoiseGit 을 사용하는게 편한가요?
좋은 툴이 어떤 것이 있는지 궁금하고요
혼자 작업하는데 이런 식의 버전관리가 맞는 길인지
몇개 소스 코드 합치면 2만줄 정도되는데 이 정도 양을 git을 쓰는게 좋은지..
여러 전문가님들의 조언을 듣고 싶습니다.
저라면 일단 싹다 푸쉬하고, 정리하는 용도로 브랜치 하나 만드는게 나을 것 같습니다.
일단 잘 되는 코드 (마스터 브랜치)... 손 대면 안 되잖아요.
그래서 새 브랜치를 만들어서 마스터와 서로 상관 없는 카피를 만들고, 그 카피 본 안에서 코드를 싹 수정 하는 겁니다. 수정 및 테스트가 완료 되면 그 카피 본을 마스터와 병합하는 거죠. 그리고 버전 넘버 올리고, 릴리즈.
이렇게 브랜치를 나눠서 코드의 형상을 관리 해야, 코드 수정의 부담이 없어지죠. 마스터는 그대로니까요.
제가 툴은 추천 못해드리지만, 커밋별로 특정한 수정 한가지만 커밋하기를 추천합니다.
한 번에 너무 여러가지를 커밋하면 나중에 되돌릴때 지옥이....
잠깐 테스트용으로 돌릴 코드가 아니라면 무조건 git을 쓰는게 좋습니다.
딱 git 을 쓰셔야할 환경 같습니다.
윈도우에 svn 서버 설치가 간단하며, TortoiseSvn이 잘되어 있고, 기능자체가 복잡하지 않아서 git보다 간단하기도 합니다.
git이 배워야 할게 100이고 그중 5정도를 사용한다면 svn은 배워야할게 10정도이고 그중 2정도만 사용한다고 생각됩니다.
회사에서 사용하는 코드를 관리하기에는 로컬에 서버를 설치하거나 private 서비스를 이용해야하는데 git은 이게 좀 부담되는 측면도 있고요.
뭐 버전관리 대세는 git인게 맞지만 국내에서는 아직 svn을 사용하는 경우도 많고요. ( 사실 svn 조차 안쓰는 경우가 더 많은것 같습니다. )
그리고 버전관리하면서 이슈관리도 하려면 svn보다 git이 좀더 나은것 같습니다.
[혼자 작업하는데 이런 식의 버전관리가 맞는 길인지]
=> 혼자 작업해도 소스코드에 대한 버전관리는 꼭 필요합니다.
개인적으로 닭잡는데 소잡는 칼이 필요없다는 취지로 좀더 간단한 svn을 추천하였지만 코드는 무조건 git이든 svn에서 관리한다고 생각하는게 맞다고 봅니다.
본인이 혼자작업하고 모든 소스 수정사항을 라인단위, 변수 하나하나 전부 빠짐없이 기억한다고 자부하시면 소스관리따위는 필요없겠죠. 본인머리속에 다 있으니. 그게 아니라면 형상관리는 꼭 필요합니다.
일단 서버없이 쓸수 있고.
굳이 깃헙이나 서버 설치 안하셔도 로컬에서 단독으로 커밋 히스토리가 다 관리됩니다.
로컬이니 백업만 주의하시고.. (디렉토리 통째로 최신거 하나만 백업해 두시면 커밋 히스토리가 다 포함되 있는거죠).
나중에 협업이 필요하면. 깃헙이나 깃랩 같은거 쓰시면 됩니다.
git은 히스토리가 .git 디렉토리에 저장이되요.
깃헙같은건은 협업을 위해 로컬에 저장된 히스토리?를 서버에 올려서 여러명이 쓰기 위한 서비스 인거구요.
혼자 작업하고 변경이력..히스토리 관리용이면 굳이 깃헙 안 쓰셔도 됩니다
나중에 깃헙에 올려도 히스토리 통째로 다 올라가구요
깃헙(서버)에도 통으로 히스토리가 올라가 있으니 다시 받음 통으로 받아지는거도 맞습니다. 로컬껄 지워도 다시 받음 땡이기도 하죠.
git init 명령을 실행하면.
실행했던 경로(보통 소스 루트 겠죠?)에 .git 디렉토리가 생깁니다.
맥이나 리눅스에선 . 으로 시작하는 디렉토리는 숨겨진 디렉토리구요..
윈도우에서도 기본으론 숨김 속성으로 만들어지지 않을까 싶네요.(윈도우를 안써서.. 추측..)
+
간단하게 관리하실 거면 github desktop도 좋습니다. 클라우드 동기화하는 느낌으로 쓸 수 있어요.