목표 :

1. 협업하기 위한 Git 기본 개념을 익힌다 - issue, branch, merge

2. 두명 이상과 협업하는 Git 프로젝트를 만들 수 있다.

3. 기능별로 나누어 작업내역을 남길 수 있다.

 

이슈할당 

우리가 보통 어떤 사건이 일어나는 것에 대해서는 이슈라고 말을 한다.

그것은 개발자들이 프로젝트를 하게 되면서 말할때도 비슷한 의미로 사용된다. 

어떤 오류가 났을 경우  OO이슈가 있어서 말이 있더라구요 라던지, 어떤 라이브러리는 OO이슈가 있더라구요 라는 식으로 말이다. 

 

개발자들이 어떤 문제 상황을 마주했을 때를 가정해보자.

그 상황(이슈)을 어떤 사람이 해결한 것인가에 대하여 프로젝트의 어떤 내용을 한 사람에게 배정하는 것을 이슈 할당이라고 한다. 

(‘이 이슈는 제가 처리할게요’, ‘ OO 이슈가 있네요 이슈등록 해두겠습니다. 어떤분이 받으실래요?’)

그렇다면 이슈할당은 어떻게 하는 걸까?

 

실제 깃에서 이슈화 하는 모습

  • Assignees : 해당 작업의 담당자
  • Labels: 해당 작업의 성격
  • Milestone: 해당 작업이 속한 파트

이슈를 적은후 submit new issue!
이슈 등록 후의 화면

 

 이슈를 바탕으로 내용들을 수정한 후 커밋을 할때, 커밋 메시지에 #3(이슈 순서)를 적어주고 푸시를 할경우, 실제 깃에서 커밋메시지 #3이 어떤 이슈와 연관되어 있는지 볼 수 있다. 

 

 

 

브랜치

개발자들과 상호간에 깃을 사용할 때 정해놓은 작업방식이 존재한다고 한다.

같은 공간에 같은 파일을 푸시하는 경우 깃에서 conflict 에러가 나기 때문에 각자 맡은 영역에 관련된 브랜치를 생성한 후 그곳으로 자료를 업로드 함으로써 에러를 미연에 방지할 수 있다.

브랜치 = 각자 개발하는 사람들 자신의 공간

 

브랜치에 관한 내용은 전에 브랜치에 관하여 정리한 글로 갈음하겠습니다.

브랜치에 대한 개념 자세히보기

 

 

'GIT' 카테고리의 다른 글

git branch 분할해서 작업해보기  (0) 2022.10.31
Git에 대해 알아보자  (0) 2022.10.29

목표 : branch의 개념에 대해 알아보고 branch를 분할&병합해보자.

 

 

branch

여러 사람이 동일한 소스코드를 기반으로 서로 다른 작업을 할 때에는 각각 서로 다른 버전의 코드가 만들어 질 수 밖에 없다.

여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능이 바로 '브랜치(Branch)'

 

 

branch를 나누는 이유?

 

출처 - https://www.youtube.com/watch?v=uoHxdOmGJDk 유튜브 허민석님 강의

 

현업에서 프로젝트를 개발하는 과정에 있어서 하나의 branch를 가지고 작업을 하는 것은 리스크가 굉장히 크다고 볼 수 있다.

많은 개발자들이 하나의 프로젝트에 투입되어 개발을 하게 될 것이고, 그 중 한사람이라도 git push를 잘못하게 되었을 시에는 업로드되어있는 내용을 pull 하는 뒤에 개발자들이 곤란한 상황을 맞이하기 때문이다.

이를 대비하여 branch를 master 하나로 작업하는 것이 아니라 여러개로 나누어서 작업하는 것을 권장하고 있다.

각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있기 때문.

보통 현업에서는 master(main), dev, signup(예) 등 브랜치를 3종류로 나누어서 작업을 하고

master > dev > signup(signup_001~) 순으로 배치하여 작업을 한 후, signup 브랜치에서 푸쉬한 내용을 dev에 추가 (병합)함으로써 혹시 모를 오류에 대비한다고 한다.

 

 

 

branch 실제 사용

 

명령어 의미
git branch 내가 만든 브랜치들의 목록을 살펴볼 수 있다.
git branch 브랜치이름  새로운 branch를 만든다.
git branch -b 브랜치이름 브랜치를 생성하면서 이동
git branch -d 브랜치이름 branch를 삭제한다.
git checkout 브랜치이름 내가 사용할 브랜치를 지정(이동)
git push origin 브랜치이름 설정한 브랜치로 업로드
git log --oneline --branches 각 브랜치의 커밋을 한 줄로 조회
git branch -r 원격저장소의 브랜치들을 확인
git checkout -t 브랜치이름 원격저장소의 동일한 이름의 브랜치를 생성하고 해당 브랜치로 checkout 

 

현재 브랜치 - main(master)

 

  1. git branch dev, git branch signup_001 입력 - dev, signup_001 브랜치 생성
  2. git branch  입력 - 내가만든 branch 목록을 살펴보기 위해 // main , dev, signup_001
  3. git checkout signup_001  - 이제부터 업로드할 브랜치를 지정 , 브랜치가 main → signup_001 로 변경됨
  4. git add 파일이름 - 수정된 파일을 add 명령어를 통해 Staging Area로 옮김 ( add명령어를 사용하기전에 'git diff 파일이름'으로 변경된 부분을 확인가능, add명령어 사용하는 순간 확인불가능)  
  5. git commit -m "메시지 내용" - commit 명령어를 통해 local repository로 옮김
  6. git push origin 브랜치이름 - 브랜치이름으로 깃허브에 push 
  7. 깃허브 레파지토리에서 main, signup_001이 따로 분리되어 있는 것을 확인

 

이미 push가 되어있는 레파지토리에 접근하는 상황:

 

  1. git clone URL - 입력하면 레파지토리의 이름으로된 폴더가 생성
  2. cd 폴더이름 - 생성된 상위폴더로 이동
  3. git remote update - 원격 저장소의 브랜치에 접근하기위해 원격 저장소를 갱신
  4. git branch -r - 원격 저장소의 브랜치 확인
  5. git checkout 브랜치이름 - 브랜치를 지정하고 원격저장소에 있는 브랜치 내용의 코드들을 불러옴

 

 

 

실제 사전스터디의 브랜치는 총 7개로 나뉘어 질 예정.

 

main / dev / 랜딩페이지 / 로그인 / 회원가입 / 메인페이지 / 세부페이지

 

각 하위 5개 브랜치들이 각자 작업을 한 후 dev에 병합, 마지막 배포를 할때 main에 병합 및 업로드 하는 것으로 예정되어 있음.

 

 

 

브랜치 병합하기

 

 

브랜치 병합은 하위 브랜치들이 작업을 완성한 후 dev에 각자 내용들을 병합하는 것

 

브랜치 병합을 했을 때, head에 해당하는 브랜치에 병합이 된다. 이미지에서는 issue1에 병합이 되는 것.

 

예를 들어 signup_001 브랜치의 작업 완료후

 

순서 명령어 내용
signup_001 브랜치의 작업 완료 상황
1 git checkout dev dev로 브랜치 지정 > head가 dev에 위치
2 git merge signup_001 signup_001를 dev에 병합
signup_001에 있던 내용이 dev로 들어가게 된다.

 

 

문제점.

signup_001을 dev branch에 병합하게 되면 signup_001은 사라진다고 들은 거 같은데 레파지토리에 브랜치는 그대로 유지가 되어있음.

현재상태로는 어떤 것을 잘못했는지 파악 불가능. 뭘까..? 따로 삭제해야되는 걸까?

'GIT' 카테고리의 다른 글

핵심 쏙쏙 Git - 2주차  (0) 2022.11.11
Git에 대해 알아보자  (0) 2022.10.29

 

 

 

 

Github

 

분산버전관리 툴인 깃을 사용하는 프로젝트를 지원하는 웹 호스팅 서비스이다. 흔히 소스코드를 관리하는 서비스라고 말한다.

 

 

 

Git 다운로드

더보기

Mac

 

1. https://git-scm.com/downloads 에 접속하여 Downloads - Mac os - homebrew 클릭

 

 

2. 아이콘을 클릭하여 명령어를 복사 한 뒤 터미널에 붙여넣기

 

 

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 

 

window 설치 - https://coding-factory.tistory.com/245 참고!

 

[Git] 윈도우 Git 설치하기 (Git for Windows)

GIt을 사용하려면 먼저 Git이 PC에 설치되어 있어야합니다. Git설치방법에 대해 알아봅니다. 윈도우버전 Git설치하기 1. Git 설치파일을 다운로드 받습니다. 아래에 링크되어 있는 페이지에 들어가서

coding-factory.tistory.com

 

 

 

Github 레파지토리 생성

 

더보기

1. https://github.com/ 에 들어가서 회원가입 후 메인 홈페이지에 있는 Create a new repository 클릭!

 

GitHub: Let’s build from here

GitHub is where over 83 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat...

github.com

 

 

2. Repository name 작성 후 Create repository 클릭

 

 

Public - 누구나 접근하여 코드를 확인할 수 있음

Private - 권한을 준 사람만 레파지토리의 접근이 가능함

Add a readme file - 프로젝트에 대한 설명이들어간 파일

Add .gitignore - 로컬에서 개발한 파일에서 코드를 올릴때 node js나 npm module같은 환경변수파일들은 깃허브로 올릴 필요가 없다. 그럴때 ignore에 적으면 깃허브로 업로드 되지 않는다. 보통 readme 파일에 어떤 것을 썼다 설치를 해야한다라는 내용의 글을 적어주는 편. readme는 이 프로젝트에 대한 설명과 실행하려면 어떻게 해야한다는 길라잡이역할을 하기때문에 그에 관련된 내용을 적는게 옳음.

Choose a license 프로젝트에 관련된 라이센스가 있을 때 선택

 

 

Git 명령어 (command)

 

' git 명령어 -option ' 

 

내용 의미
git config —global 깃 명령어 정보 확인하기
git --version 깃이 설치되어 있는지 버전 확인 가능
git echo 새로운 파일과 그 파일의 내용을 생성
git init 새로운 저장소를 생성(master 브랜치 생성)
git add 현재 상태를 추적
git commit 현재 상태를 저장
git show commit 정보를 확인
git clone URL 기존 소스 코드를 다운로드/복제
git branch 브랜치 목록
git branch <브랜치이름> 새 브랜치 생성 (local)
git checkout -b <브랜치이름> 브랜치 생성 & 이동
git push origin <브랜치이름> 만든 브랜치를 원격 서버에 전송
git remote add <name> <url> url으로 원격 저장소를 등록
git remote -v 현재 git에 등록된 원격 저장소 리스트를 보여 줌
git push -u < remote > <브랜치이름> 새 브랜치를 원격 저장소로 push 
git pull < remote > <브랜치이름> 원격에 저장된 git 프로젝트의 현재 상태를 다운받고 + 현재 위치한 브랜치로 병합
git push origin master 변경사항 원격 서버에 업로드
git pull 원격 저장소의 변경 내용이 현재 디렉토리에 가져와지고(fetch) 병합(merge)됨
git merge <다른 브랜치이름> 현재 브랜치에 다른 브랜치의 수정사항 병합
git checkout -- <파일명> 로컬의 변경 사항을 변경 전으로 되돌림
git fetch origin 원격에 저장된 git프로젝트의 현 상태를 다운로드
git diff 파일이름 파일 안에 변경된 내용을 보여준다.
( working directory와 staging area 사이의 차이를 확인하기 위해 사용된다.
예를 들어서 같은 파일이 레파지토리에 올려져 있는 상황에서 파일을 수정한 다음 수정된 부분이 어디인지 확인해 보는 것. 혹시나 add옵션을 사용하여 staging area로 올려버리게 되면 변경사항을 확인할 수 없으므로 주의해야 함)

 

 

... 그 외에 CLI(Command Line Interface)명령어

 

내용 의미
mkdir 폴더이름 폴더를 생성 (make directory)
cd 폴더이름 현재 위치에서 상위 폴더로 이동 (change directory)

cd .. 현재 위치에서 하위 폴더로 이동

open 폴더이름 해당 위치의 폴더를 실제로 엶. 
ls
파일 리스트 보기
ls -al 파일, 디렉토리의 상세정보 함께 표시
clear 터미널에 입력된 내용들을 지워 줌
rm -rf 폴더이름 디렉토리 항목을 삭제
code . 현재 폴더를 VSCode 에디터로 열기
( 설정환경마다 다르지만 vscode에서 설정 > 커맨드 팔레트 툴(command + shift + p) > code 입력 > Shell Command: install ‘code’ command in PATH 클릭하면 설정 완료 )



 

Git 처음 설정해야 할 것

 

Git 최초 설정: 사용자 이름과 이메일 설정하기

 

git config —global user.name “이름”

git config —global user.email “이메일

 

Git과 같은 버전 관리 도구는 여러 사람이 함께 협업하는 것을 전제로 하고 있다. 따라서 저장소에 변경 사항을 추가하는 Commit 작업을 할 때 누구의 작업인지를 기록하는 것이 매우 중요! 

Git에서는 커밋을 할 때 사용할 이름과 이메일을 지정할 수 있으며, 이 때 커밋에 기록된 이메일은 GitHub의 사용자를 연결할 때도 사용된다.

 

 

 

 

Git의 workflow

 

Working directory - 프로젝트의 작업을 수정하고 있는 장소

 

Staging area - 히스토리에 저장할 준비가 되어있는 파일들을 옮겨놓는 장소

 

Local Repository - 히스토리를 가지고 있는 장소 

 

 

 

Working Directory에서 어느정도 작업이 되었다고 생각한 파일들을 add 명령어를 이용하여 staging area로 옮겨두게 되고 commit 명령어를 이용하여 Local Repository에 옮김. 마지막으로 Local Repository에 도착한 파일들을 push 명령어를 통해 깃허브 주소로 업로드 

Local Repository에 저장되어있는 파일은 'git checkout — 파일이름' 통해 언제든지 working directory 돌려놓을 있음.

 

'GIT' 카테고리의 다른 글

핵심 쏙쏙 Git - 2주차  (0) 2022.11.11
git branch 분할해서 작업해보기  (0) 2022.10.31

+ Recent posts