본문 바로가기

인턴일지

Git 문법 정리

서론

그동안 진행했던 각종 프로젝트를 정리하여 포토폴리오로 작성하고자 Git을 사용하게 되었습니다. 사실 Git은 '멋쟁이 사자처럼'이라는 연합 동아리 활동을 할 때 처음 배웠었는데요. 그 때는 다른 꿈을 꾸고 있었고, 협업할 때 AWS를 사용했기 때문에 제대로 알고있진 못했습니다.

인턴을 하면서 GitLab을 사용하게 되어 Git에 대해 공부하고 사용해보니, 간편하고 매력적인 Tool이라는 것을 알게 되었네요. 오늘 포스팅은 간단한 Git 명령어와 Git 사용 이유 등에 대해 포스팅하려 합니다 :)

 

본론

Github

분산 버전 관리 툴인 Git을 사용하는 프로젝트를 지원하는 웹호스팅 서비스입니다.
고성능 외부 서버(Ubuntu 18.04)와 로컬(Window)에서 둘다 사용하므로 두 가지 방법에 대해 소개해 드리겠습니다!

1) 리눅스 (Ubuntu 18.04) 사용 방법
터미널로 접속 하여 아래와 같이 한줄씩 작성해주시면 됩니다 :)

#패키지 리스트 업데이트
$sudo apt-get install git

#git 패키지 설치
$sudo apt install git

이름과 메일주소를 config 해주세요!

$git config --global user.name "seojiyoung"
$git config --global user.email "seojiyoung329@회사이메일"

저는 GitLab에 올리기 위해 회사이메일을 사용했는데, 개인 Git에 올리시는 분들은 git아이디를 만들었던 이메일을 올리시면 됩니다!

 

2) Window 사용 방법

저는 gitbash를 이용했습니다. 설치는 아래 홈페이지에 들어가서 하시면 됩니다!
https://git-scm.com/ 

 

Git

 

git-scm.com

gitbash에 접속해 주세요 :)

 

이름과 메일주소를 config 해주세요!

$git config --global user.name "seojiyoung"
$git config --global user.email "seojiyoung329@회사이메일"

저는 GitLab에 올리기 위해 회사이메일을 사용했는데, 개인 Git에 올리시는 분들은 git아이디를 만들었던 이메일을 올리시면 됩니다!


이제부터는 리눅스, 윈도우 공통입니다!

간단한 터미널 명령어부터 알아봅시다! 터미널 환경에 접속하면 $만 덩그러니 놓여있어 초보자는 어려움을 겪습니다 :( 
시작하기에 앞서!

☆파일=디렉토리☆

5번 정도 읽으면서 기억해주세요! ㅎㅎㅎ :)

#디렉토리 생성

$mkdir

#파일 리스트 보기

$ls

#전체 파일 리스트 상세히 보기

$ls -al

#디렉토리 이동

$cd

#빈 파일 생성

$touch

#편집기 상태로 들어감

$vi

그냥 보게 되면 잘 모르겠죠..? 이제 시작할 Git 사용법을 따라오시면서 이해하셨으면 좋겠습니다!
이 부분은 명령어를 까먹었을 때 찾기 쉽게 정리해놓은 거라 생각하시면 됩니당 ㅎ_ㅎ

Git 저장소(repository)에 코드 올리기

1) 원하는 이름의 directory를 만든다.

$mkdir Emotion_Recognition
$cd Emotion_Recognition

mkdir는 파일(directory)를 만드는 명령어입니다. makedirectory의 줄임말인 것 같네요.

 

2) 디렉토리를 git 환경으로 초기화

$git init

> 숨겨진 하위 디렉토리 .git이 생성됨

 

3) 현재 디렉토리의 git 상태를 알려줌

$git status

빨간색은 git에 추적되지 않은 (수정된) 내용이 있음

 

4) 수정된 내용을 git이 추적

$git add [filename] 
# 또는 
$git add .

초록색은 git이 추적하는 내용이 있음

 

5) git에 반영

$git commit -m "커밋 내용"

 

6) GitLab(또는 github)에 디렉토리(directory) 이름과 똑같이 저장소(repository) 이름을 정해준다.

 

7) 디렉토리와 저장소를 연결

$git remote add origin [URL]

! 저장소 url을 잘못적으면 매우 귀찮아지므로 처음에 잘 써놓기

 

8) 디렉토리의 git 내용을 저장소에 연동

$git push -u origin master

 

이제 Git repository를 확인해보시면 원하는 대로 잘 올라간 것을 확인할 수 있습니다. :)
실패했다면, config할 때 본인 아이디, 이메일과 다르게 하지 않았는지 확인해보세요!

 

[GitLab] You are not allowed to push code to protected branches on this project 에러가 발생

https://ipex.tistory.com/entry/GitLab-You-are-not-allowed-to-push-code-to-protected-branches-on-this-project

 

[GitLab] You are not allowed to push code to protected branches on this project

해당 에러는 해당 push 하려는 branch 가 Protected로 설정 되어있기 때문에가 많습니다. 대부분 의 경우는 Master Branch 가 이런 경우가 많고 아니면 다른 브랜치에 대한 Permission 을 주는 경우가 이에 해당되..

ipex.tistory.com

참고하여 repository를 수정한 후에 아래 코드를 사용하자.

$git push origin +master

GitLab 에서 Github으로 repository 복사하기

1) 복사하고자 하는 저장소(gitlab)의 bare clone 생성
여기서 URL은 gitlab 저장소의 URL입니다.

$git clone --bare [URL]

Cloning into bare repository '프로젝트.git'... 라고 나옵니다.

 

2) 새로운 저장소(github)로 mirror-push 진행

$cd 프로젝트.git
$git push —mirror [URL]

 


Git branch

협업할 때 git branch 사용은 필수입니다!

branch 확인

$git branch

처음에는 branch가 master뿐입니다. master branch는 모든 repository에 기본적으로 존재합니다.

 

branch 생성

$git branch <branch_name>

 

생성한 branch로 이동

$git checkout <branch_name>

branch를 생성할 때 'branch의 현 시점'에서 똑같이 생성됩니다.
branch에서 작업 후, 수정된 내용이 branch에 반영되도록 commit 실행

 

현재 directory branch의 git log 보기

$git log

 

현재 branch와 병합

$git merge <branch_name>

 

log 내용에 graph까지 확인

$git log —graph

 


Git Flow

branch 이름을 협업 버전에 맞추어 진행하고 싶다면?

master : 최종 릴리즈한 안정된 버전, 배포버전
develop : 개발용 메인 브랜치
feature : 특정한 기능을 위한 브랜치
          - develop branch에서 가져오고, 그 외의 다른 branch와 merge X
          - 일반적으로 local에서만 사용하고 origin엔 push X
release : 배포 점검을 위한 브랜치
hotfix : 배포 중 긴급 버그 수정을 위한 브랜치

 

결론

Git 설치 (리눅스, 윈도우)부터 저장소에 올리는 방법, Gitlab에서 개인 github으로 옮기기, git branch까지 많은 내용을 담아보았습니다! 혹시 보시기에 불편하거나, 궁금한 점이 있으면 댓글로 남겨주세요! 
부족하지만 열심히 알려드리겠습니다 :)