안녕하세요.
git, github 공부를 이제 막 시작한 iOS 개발자 준비생입니다.
이전 글에 달아주신 댓글 정보를 바탕으로 공부를 하고 있습니다. 지금까지 xcode GUI를 통해 커밋만 했었는데 현업에서는 CLI를 많이 사용한다고 하여 터미널로 git을 다루는 방법을 중점으로 공부해 보려고 합니다. 검색을 해봤더니 터미널 말고 아이텀이라는 앱으로 많이 사용하시는 것 같아서요. 그 이유가 비주얼적인 면, 즉 가독성 때문에 터미널 대신 사용하는 걸까요?
기본 앱 터미널로 공부해도 문제가 되지 않는지, 또 현업에서는 어느 정도까지 git, github을 다룰 줄 알아야 하는지 조언해 주시면 감사하겠습니다.
git의 경우 commit, push, pull은 당연히 알아야 하고, stash, squash, rebase, merge, rm등의 사용법을 알아두시면 도움이 됩니다.
물론 명령어 사용하는 것 말고 git이 어떠한 흐름으로 동작하는지를 이해하는게 더 중요합니다.
이러한 이해가 없이 그냥 사용할 경우 자기가 한 실수가 뭔지도, 어떻게 해결해야할지도 모르게 됩니다.
github의 경우 pull request, code review, actions 사용법 정도를 익혀두시면 됩니다.
자주 쓰는 간편한 Git 명령어들은 그냥 터미널에서 하는 게 빠르니까요.
IDE 툴 안에도 내장 터미널도 있고 플러그인 형태의 깃 툴이 있는데 간혹 히스토리 확인하거나 diff 보거나 할 때 간편하게 이용할 수 있어요.
git 개념이 잡혀 있으면 그런 GUI 플러그인 툴이나 앱들은 금방 익혀요.
유튜브에 git 현업 등과 같은 검색어로 찾아보면 자세한 설명 많아요.
기본적인 명령어들 위주로 먼저 보고 익숙해지면 그 다음 약간 고급 기능까지 알아두면 좋고요.
요샌 ide 자체에서 대부분 git 지원해주니까 굳이 cli를 고수할 필요도 없어요.
배우는 단계니까 명령어를 직접 쳐보는 정도의 의미말고는 ㅎㅎ
저 포함 주위 개발자들 보면 fork, gitkraken 등등 별도의 써드파티 앱 쓰는 분들이 더 많네요.
터미널도 기본 터미널 쓰시는 분들도 많으세요.
그 외 써드파티 앱 쓰시는 분들은 그 앱에 본인이 원하는 편의 기능이 있기때문이겠죠 (혹은 성능차이)
정말 현업에서 CLi를 고집합니까? 저희 쪽은 전혀 안그런데요.
그냥 Github Desktop(전 주로 이걸 씁니다)을 써도 되고 xCode를 쓰신다니 그냥 툴에 내장된 걸 쓰면 더 편한데요.
물론 그냥 기본 삼아 터미널에서 CLi 환경을 한번 써보는 것도 손해보는 일은 아니긴 하죠.
기본 내장 터미널과 iTerm은 굳이 git cli 하나 배우겠다고 iTerm 깔고 뭐하고 할 필요는 전혀 없다고 봅니다.
"그 이유가 비주얼적인 면, 즉 가독성 때문에 터미널 대신 사용하는 걸까요?" -> 탭으로 창 분할 등이 좀 편한데, 굳이 필요 없습니다. 사실 제일 많이 쓰는 터미널은 IDE 에 내장되어 있는 터미널 같아요 ㅎㅎ 전 vscode 내장 터미널과 warp 라는 터미널 씁니다.
그리고 특정 언어나 플랫폼을 위한 개발툴에 내장된 기능에 익숙해지면 나중에 다른걸 할때 햇갈릴 수 있으니
fork나 sourcetree 같은 별도의 형상관리 프로그램을 쓰는것도 좋습니다
현업이 터미널에서 git 작업한다는 소문은 왜 퍼진건지 모르겠네요. 그런 현업은 열명도 못 봤어요.
배우시는 단계라면 gui를 사용하여 여러기능과 컨플릭 조건 등 깃의 특성에 대해 익히시는걸 추천드리고 싶습니다 ㅎㅎ
vscode extension이나 JetBrains IDE에 달린 기능으로 GUI 사용이 가능하긴 한데, 키보드에서 손이 떨어져야 하는게 싫어서 잘 안 쓰게 되네요.
개인적으로는 맥 로컬에서 작업할 때에는 GUI도 많이 사용합니다.
서버 터미널 코더분들은 터미널이 기본일거고…
/Vollago
업으로 삼으면 툴을 최대한 활용해서 생산성을 극대화하는게 중요하지만, 배우는 과정에선 조금 불편해도 CLI 를 한번 접해보시는걸 추천드려요 :)
(CLI를 즐기다보니 현업에서도 남들 VSCode 쓰고 pycharm 쓸 때 나홀로 vim 을 쓰게 되는 단점이 있긴합니다.)
확연히 text로 보는 것 보다는 그래픽적으로 보는 것이 보다 직관적이다 보니 사용하는데 들어가는 노력을 줄일 수 있다고 생각합니다. 차라리 아낀 에너지를 보다 코드 구조를 효율적으로 만들까 고민하는데 쓰는게 현명하다는게 평소 생각입니다.
iterm2를 저도 쓰지만, 사용 이유는 쬐금 더 이쁘기도 하고 소소하게 편하기 때문입니다.
다른 부분에서 에너지를 아껴서 진짜 집중해야 하는 부분에 집중하는 것이 좋다고 생각되네요.
아 물론 CLI에 적응이 너무 잘 된 상태라면, GUI tool을 익히기 위해 에너지를 쓰는 것이 좋을지는 고민이 필요할 듯 합니다.
다루는 툴은 그닥 중요치 않다고 봐요.
저는 터미널 많이 씁니다.
git은 아주 잘 다뤄야 합니다. github에서 협업을 어떤식으로 하는지도 잘 알아야 하구요. git은 기본 중에 기본이라서 어느 정도나 해야하냐고 물어볼 것도 없이 아주 잘 알아야 합니다. 프로젝트가 커질수록 잘 알아둘 필요성이 커집니다. Pro Git (https://git-scm.com/book/ko/v2) 읽어보세요.