본문 바로가기

개발

[gitlab] - 깃랩 사용하기 !

이번에는 깃과 연결된 내프로젝트를 gitlab에 올리는 작업을 할 예정입니다

 

사용할 기능은 fetch, checkout ,branch , commit , push ,merge 입니다.

 

각 기능별 사용 방법을 작성해볼 예정입니다

 

일단 git은 다음과 같은 구조로 되어있습니다.

master branch만 있다고 가정하고 설명하자면 , 서버에있는 GITBAB (repository ) 은 origin/master 입니다.

그리고 로컬GITLAB은 master 라고 할 수 있습니다.

 

우리가 웹으로 우리 깃을 들어가 clone을 선택한후 다운받으면 master/origin의 정보를 다운 받는것 입니다.

 

그리고 IDE에서 코드를 작성하다가 commit을 하면 로컬 GITLAB에 적용되고 , push를 하면 서버 GITLAb에 업로드하는 것 입니다. 

 

1. fetch = fetch는 내가 작업을 하는 동안 누구간 서버GITLAB에 push한 내용이있는지를 체크하는 기능입니다.

저는 git push 나 merge를 하기전 반드시 fetch 를 통해 업데이트내용을 받습니다.

 

2. branch : 브런치는 master에서 어떤 작업이 있을경우 master에는 영향을 주지않고 작업을 진행할수 있는 공간이라고 할 수있습니다.  A라는 서비스 A' 기능을 추가할때 master에서 진행할 수도 있지만 , 코드를 작성하고 수정하는 부분에서 서비스 코드에 안전성 등을 고려하여 영향을 주지않고 진행하고싶은 경우 branch를 만들어서 작업할 수 있습니다.  그리고 코드의 테스트가 끝난 후 안정성이 확보되었다면 master 와 branch를 merge하여 코드를 합칠수도 있습니다.

 

branch를 만드는 과정은 아래와 같습니다

switch to 

 

브런치생성 

 

위 그림처럼 브런치를 만들고 checkout new branch를 선택하면 생성한 브런치로 바로 변경됩니다.

브런치 생성전
브런치 생성 후 

 

 

3. checkout : 체크아웃은 브런치간 이동을 하는 기능입니다. master 브런치에서 k_main이란 브런치로 이동할 경우 체크아웃이라고 표현하며 기능은  team -> switch to 에 있습니다.

 

4. commit & push :  GITLAb에서 커밋은 IDE에있는 코드를 로컬GITLAB으로 업로드하는 작업을 의미합니다. 그리고 로컬 GITLAB 에서 서버GITLAB 으로 이동하는것을 푸시라고 합니다.

커밋을 누를 경우 stagedChanges 에 있는 파일들이 실제로 commit됨.

만약 unstaged Changes 에 있는 파일을 추가 stageChage로 추가하고싶다면 + 표시나 , 해당 파일을 우클릭하여 index to add  해주면 됩니다.

 

 

5. merge :  merge는 서버 GITLAB에 있는 코드와 내 로컬 GITLAB과 합치는 작업을 의미합니다.

내가 작업을 하는 동안 누군가 서버에 코드를 작성하고 push 를 한 경우 저는  코드와 동기화를 하기 위해 merge를 할 필요 가 있습니다.

 

 

merge의 경우 rebase로 비슷하면서 다른 기능이 있습니다. rebase를 사용할 일이 아직없어서 따로 사용은 하지않았지만

원리는 git history를 간편화 시켜준다는 느낌입니다.

 

저는 이 자료가 이해에 도움이 되더라고요.

 B 에서 브런치를 만들어 작업을 하고있습니다. 제 작업은 아직 merge를 하지않앗고 , X,Y까지 커밋이되었습니다. 이제 merge를 하려고 하는데 누군가 master에서 C,D 를 커밋한 상황입니다.

 이때 그냥 merge를 한다면  그림 1과 같이 되고 , rebase를 한다면 그림 2 처럼 됩니다

그림 1
그림 2 

backlog.com/git-tutorial/kr/stepup/stepup1_4.html

 

누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog

누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다!

backlog.com

 

 

이거 말고도 stash 라는 기능이있는데 아직 사용 해보지못해서 추후에 사용해보고 알려드리도록 하겟습니다.

 

마지막으로 제가 보통 commit하는 순서를 기록해보겟습니다.

 

1. checkout branch ( 작업할 브런치로 이동 )

2. merge to origin/master ( 최신 origin/master 다운로드 )

3. 코드 작업 /  테스트 / 작업완료  

4. fetch ( 작업하는동안 origin/master에 다른 push가 있는지 확인 )

5. merge to origin/master 

6. commit and push ( 서버 GITLAB 내 브런치에 upload ) 

7. checkout master ( 마스터 브런치로 이동 ) 

8.  merge to mybranch ( 서버GITLAB에 내 브런치와 동기화 ) 

9. synchronize workspace ( master 브런치상태의 IDE와 비교 )

10. commit and push 

 

더 좋은 방법이있다면 피드백해주시면 감사하겠습니다.