업무 관련 툴

git hub 사용법 및 업무협업 (git, repository, branch ...)

chanstory 2022. 12. 12. 20:11
반응형

git 이란

- 형상관리 도구 중 하나이며, 여러명의 사용자들 간의 파일 변경사항 추적 및 작업 조율을 위한 분산 버전 관리 시스템

- 소프트웨어 개발에서 소스코드를 효과적으로 관리할 수 있는 공개 소프트웨어

- 프로젝트 폴더 내 작업을 기록하고 버전 관리를 통한 체계적인 개발이 가능

 

git 장점

- 분선적 개발 (전체 개발 내역을 각 개발자의 로컬 컴퓨터로 복사 가능, 데이터 Merge를 할 수 있다.)

- 효율적 개발 (많은 변경이력에 대해서도 효율적인 처리가 가능하다.)

- 비선형적 개발 (branch 라는 개념으로 프로젝트의 가지치기가 가능하다.)

- 변경 이력 보장 (작업되는 모든 내역(commit)모두 별도의 영역에서 안전하게 관리된다.)

 

github란

- 분산 버전 관리 툴인 깃(git)을 사용하는 프로젝트를 지원하는 웹호스팅 서비스

 

주요용어

- repository : git으로 관리되는 파일 및 프로젝트에 대한 저장소 역할

                  => Local Repository : 내 컴퓨터에 저장된 프로젝트 저장소

                  => Remote Repository : 원격 서버에 저장된 프로젝트 저장소 (협업 파트너와의 공유 저장소)

- branch : 독립적 작업 진행을 위한 공간 생성

                  => 통합 브랜치 (Integration Branch) : 배포될 소스 코드가 기록되는 브랜치

                                                                               (해당 프로젝트의 모든 기능이 정상적으로 동작하는 소스코드가 담겨 있다.)

                  => 피처 브랜치 (Feature Branch) : 기능 추가, 버그 수정과 같이 단위 작업을 위한 브랜치

- merge : merge의 기본단위는 branch이며, 다른 branch로 합치는 것

- commit : 소스코드 변화에 대한 기록 (의미 있는 변경 작업을 저장소에 기록하는 동작)

- fork : 다른 사용자의 Repository를 복제하여 나의 repository에 복제하여 수정 및 삭제 등 작업 가능

                  => pull request 를 통하여 원본에 변경사항 저장

- clone : 원격 저장소로부터 로컬 저장소로 복제

- push : 로컬 디렉토리 데이터를 Remote repository로 전송

- pull :  다른 사용자의 원격 저장소 업데이트에 대한 파일을 내 로컬 저장소의 상태와 동일하게 함

 

 

 

파트너와 Git hub 협업 실습

1. git 환경 설정

 

$ git config -- global user.name "나의 깃 사용자 이름"    // 깃 사용자 이름 등록

$ git config -- global user.email "나의 깃 이메일 주소"  // 깃 이메일 주소 등록

=> --global 옵션 사용 시 사용자 홈에 저장됨, github 사용자 이름이나 이메일이 변경된다면 다시 실행해야함.

 

 

 

2. SSH 설정

 

$ ssh-keygen   // ssh 키 생성

$ cat ~/.ssh/id_rsa.pub   // 공개키 확인 및 복사

 

마이페이지 내 Setting -> SSH and GPG keys -> New SSH key -> 복사한 공개키 입력

 

 

 

3. Local Directory 내  소스코드 작성

간단하게 덧셈함수 작성

 

 

4. git 메소드를 통한 데이터 업로드 (PUSH)

 

* git init  // 해당 디렉토리에 Local Git repository를 설정한다. 

 

*git remote add <이름>  <주소>

- git remote add 명령어를 통하여 나의 깃 허브 주소를 등록한다.

$ git remote add origin <나의 깃 허브 주소>

 

$ git remote -v   // remote로 등록된 주소 확인 가능

깃허브 주소는 연결할 Repositories 내에 (없을경우 우측 new를 통하여 생성) 

우측 code 클릭 후 HTTPS 또는 SSH 복사하여 사용  // 이후 주소 입력 란을 한가지로 통일한다.

 

 

* git status   // git 상태 확인 가능

- add.js  가 언트랙킹 되어 있어 git add 명령어를 통하여 staging area로 트랙킹 해야한다.

 

 

* git add <파일 이름>

$ git add add.js  // staging area로 트랙킹 

 

 

* git commit -m "<코멘트>"

- git commit -m 명령어를 통하여 데이터를 코멘트와 함께 커밋 시킨다.

 

* git log

- git log 명령어를 통하여 로그 데이터 확인 가능

 

 

* git push origin master

- 로컬 디렉토리 내 commit 된 데이터를 해당 Repository 로 업로드 한다.

 

 

 

5. git 메소드를 통한 데이터 복제 (PULL)

 

* git remote add <이름> <페어 깃 레파짓토리 주소>

- git remote add 명령어를 통하여 페어의 레파짓토리를 등록한다.

- git remote -v 를 통하여 등록된 정보 확인

 

* git pull <이름> master

- git pull 명령어를 통하여 페어의 해당 레파짓토리 복제 확인

- 내용 수정 후 push 명령어를 통하여 나의 레파짓토리에 등록하고 확인

 

git push 시

 ! [rejected]        master -> master (fetch first)

위와 같은 오류가 날 수 있음. 데이터가 겹쳤을때 나는것 같음

 

$ git push origin +master 로 해결함 (master or main 등 브랜치 이름에 맞게)

 

이후 해당 레파짓토리에 추가된 파일 확인

 

 

*추가사항

 

git pull 명령어 입력 시 위와 같은 에러가 나올 수 있음

(From github.com  ~~~~~~ branch master -> FETCH_HEAD

  fatal: NEed to specify how to reconcile divergent branches.)

 

아래 세가지 중 한가지의 병합방법을 선택해야 한다.

 

hint: git config pull.rebase false # merge (the default strategy)

hint: git config pull.rebase true # rebase

hint: git config pull.ff only # fast-forward only

 

이 중 merge 를 사용하기위해 

$ git config pull.rebase false 입력

 

 

 

 

6. git 메소드를 통한 내 Repository 데이터를 로컬 디렉토리로 가져오기

* git clone <해당 깃 레파짓토리 주소>

$ git clone 명령어와 나의 해당 레파짓토리의 HTTP or SSH 주소를 복사하여 사용

- 나의 Repository를 로컬 디렉토리로 가져와졌음을 확인한다 (ls 사용)

 

 

 

 

참고 링크

https://velog.io/@jini_eun/Github-Github%EB%9E%80-%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC

 

[Github] Github란? (간단 정리)

안녕하세요 오늘은 제가 매일 사용하는 github가 무엇인지, 어떤 식으로 활용하는지 간략하게 정리해보고자 합니다.매일 이용하지만 정확히 정의가 무엇이고, 어떤 역할을 하는 무엇인지 확실하

velog.io

https://wordbe.tistory.com/entry/Git-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95-%EC%A0%95%EB%A6%ACcommit-push-pull-request-merge-%EB%93%B1

 

Git 사용 방법 정리(commit, push, pull request, merge 등)

Git git 개념 및 명령어 정리 개인 개발을 넘어, 공동 개발에서 효율적인 코드 형상 관리를 하기 위함. Git 영역 (1) Working Directory (Local) : 개인 코드 작성 (2) Staging 영역 :​ git add 를 통해서 수정된 코

wordbe.tistory.com

 

반응형