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
Git 사용 방법 정리(commit, push, pull request, merge 등)
Git git 개념 및 명령어 정리 개인 개발을 넘어, 공동 개발에서 효율적인 코드 형상 관리를 하기 위함. Git 영역 (1) Working Directory (Local) : 개인 코드 작성 (2) Staging 영역 : git add 를 통해서 수정된 코
wordbe.tistory.com
'업무 관련 툴' 카테고리의 다른 글
[Mac OS]GitHub Action을 이용한 Node.js CI (0) | 2023.01.12 |
---|---|
빠른 궁금증 해결을 위한 ChatGPT (OpenAI) (0) | 2022.12.21 |