맨 처음 Git/Github에 대해서 배울 때 너무 혼자 야매로 배웠어서 다양한 용어에 대해 미숙했당...
cmd 창에 명령어를 어렵게 치지 않아도 SOURCETREE 를 이용하면
1. git commit / git merge 등을 클릭으로 해결할 수 있다.
2. 내가 지금까지 commit했던 내용들을 가시화해서 밑 그림처럼 친절하게 보여준다. (merge 과정들도 딱 보임)
이런 장점들이 있어서 평소 그냥 이렇게 써왔는데,
이번에 처음으로 협업하면서 PR을 날리다가 + 스터디원들 git 연결을 도와주다가 많이 헤맨 경험을 하고 말았다..😥
결국 해결은 sourcetree를 깔아서 해주긴 했지만.. 그래도 한 번 정리를 해놓으면 좋을 것 같다!!!
일단 나는 항상 default branch로 master를 채택하고 있는데(sourcetree의 default branch가 master로 되어 있었다.)
협업 시 공용 repository에서는 주로 main을 채택하고 있어서 충돌이 생겼다.
그래서 내가 평소 알고있던 sourcetree 사용법과 깃 명령어를 연계해서 정리해보았다.
박스는 중간중간 TROUBLE SHOOTING한 경험을 써봤당!!
Git을 처음 써볼 때의 TROUBLE SHOOTING!
당연하게도 git을 설치해주어야 한다..!!! github랑 git은 차이가 있다는 걸 잘 모르고 놓치는 경우가 많아보인다.
에러 중에 git command not found 등을 볼 수 있는데
1. git을 설치 하자.
2. 터미널 창을 powershell 말고 git bash 창으로 옮기자.
일단 우리가 깃허브에 내 local folder를 올릴 때까지의 경우를 크게 네 단계로 나누면
1. 변경사항이 생긴다.
2. 내가 원하는 구간까지/내가 원하는 파일영역까지 지정해서 변경사항을 STAGE에 올릴 수 있다.(staging)
3. staging area에 온 것들을 commit한다. (commit : 저질러버리다!! 보내버리다)
4. push한다. github 주소에 해당하는 곳에 갖다준다.
그럼 이제 세부적으로 설명해보자..!!
내가 원하는 폴더에 git을 처음 깔 때 git init 명령어를 사용해준다. 이후 우리는 master라는 브랜치에 있음을 알 수 있다.
보통 협업 시 main 브랜치를 많이 사용하므로
git branch -M main 명령어로 브랜치를 바꿔준다.
main vs origin/main ?? 무슨 차이가 있는 거지??
main은 내 local branch, origin은 remote, 즉 github에 있는 branch 의미한다.
만약 git의 main branch에는 colab을, master branch에는 내 local 것을 넣고 싶다면??
위 명령어처럼 git branch -M main 또는 git branch -M master 명령어를 사용해서 브랜치 이동 후 커밋한다.
이 때 git diff 오류 주의!!(나중에 다뤄보기로..)
이후 변경사항이 생기면 sourcetree에 자동으로 변경사항이 연계된다. 이 때 아직 스테이지에 올라가지 않은 상태이다.
스테이지에 올리는 명령어는 git add이다. 아래 명령어로 git add를 쳐주면 스테이지에 올라간다.
sourcetree에서 그냥 '스테이지에 올리기' 누르면 올라가긴 한다. 그리고 왼쪽 위에 커밋에 + 표시로 커밋할 수 있음을 표시해준다.
그리고 아래 그림에 주의(!) 표시가 쓰인 원격(remote)에 깃허브 주소를 연결해주어야 한다.
명령어는 git remoteadd origin https://github.com/[사용자이름]/[repository이름].git 이다.
이후 커밋을 해준다. git commit -m "first commit" 이런 식이다. 이 때 따옴표 없이 띄어쓰기 (에를 들어, git commit -m first commit) 하면 에러가 나니 주의하자. sourcetree에도 커밋에 +가 없어진다.
git push 과정이다. 초기에는 git push --set-upstream origin main으로 push하는 것이 좋다.
이 때 --set-upstream은 이후에 그냥 git push 명령어만 써도 되도록 한다. sourcetree에서는 push 버튼에서 main에 체크해주고 push 버튼을 누르면 끝난다!!
'협업도구' 카테고리의 다른 글
[GIT] commit history 를 삭제시킨 후 내 커밋만 force push (0) | 2023.08.16 |
---|---|
[IntelliJ | windows] Intellij 환경에 google-java-convention 적용하기 (0) | 2023.08.16 |