asd42270.log
로그인
asd42270.log
로그인
Git/Github 정리
개발세발
·
2023년 11월 8일
팔로우
0
git
github
Git
분산버전관리 시스템
코드를 관리하고 협업하기 위해 사용
소스코드 관리에 주로 사용.
Github
Git으로 관리되는 소스코드를 저장하고 공유하는 저장소
오픈소스 라이센스
소프트웨어를 공개하고 수정, 배포, 사용을 허용하는 조건을 정의하는 규약.
소스코드의 공개 여부, 제한, 상업적 이용 가능 여부 등을 명시
Git의 주요 기능
분산 버전 관리
변경 사항 추적
브랜치
원격 저장소 지원
이력 관리
병합 및 충돌 해결
태그
Git의 Repository
Git으로 관리되는 프로젝트 저장소
프로젝트의 모든 파일, 폴더 버전 정보, 이력 등을 저장
Local Repository, Remote Repository
Local에서 직접 작업하는 컴퓨터에 있는 저장소,
협업을 위해서는 Local에 있는 작업물을 Remote Repository에 공유해야 함.
Branch
코드 변경 사항을 병렬적으로 개발할 수 있는 기능
새로운 브랜치를 생성하여 기존 소스 코드와는 별개로 작업을 진행.
각 브랜치는 서로 영향을 주지 않아, 동시 작업 시 충돌을 방지
Git 명령어
git init
Git 저장소를 초기화하고 새로운 로컬 저장소를 생성
.git이라는 디렉토리 생성
git status
git 저장소의 상태 확인
현재 작업 중인 파일의 변경 사항이나 커밋되지 않은 변경 내역 확인
Working tree status
Staging area status
git add
파일을 stage 영역에 추가
-A: 작업 디렉토리 전체의 변경된 파일 추가
git commit
변경 내용을 저장하고 커밋
변경된 내용에 대한 스냅샷을 생성하고 스냅샷에 대한 메세지를 작성
-m: 커밋 메시지를 작성하는 옵션
로컬 저장소에만 저장됨
git push
로컬에서 변경된 내용을 원격 저장소에 업로드
git push <원격 저장소명> <local_branchname>:<remote_branchname>
git pull
원격 저장소의 내용을 로컬 저장소로 가지고 옴.
다른 사람이 변경한 내용을 로컬로 가지고 올 때 사용
git pull <원격 저장소명> <_branchname>
git clone
원격 저장소를 로컬에 복제
아예 다른 없는 프로젝트를 가져올 때 사용
git clone <원격저장소 url> <local_name>
git log
Git 저장소의 커밋 히스토리 확인
가장 최근 것부터 역순으로 출력
git lon -n: 최근 n개의 커밋 히스토리를 역순으로 출력
git reset
이전 커밋 상태로 되돌리기
git reset HEAD: 가장 최근에 스테이징한 변경 내역을 언스테이징
git reset HEAD file
git reset --soft <commit_>: 지정한 커밋으로 돌아가며, 변경 사항 유지
git reset --hard <commit_>: 지정한 커밋으로 돌아가며, 변경 사항 삭제
git stash
변경 사항을 스택에 임시로 저장
git stash pop을 통해 저장된 변경 사항을 다시 적용
git stash list: list 스택에 저장된 목록 확인
git stash drop: 가장 최근에 저장된 stash 삭제
git diff
마지막 커밋과의 변경 내용을 비교
git branch
현재 저장소의 모든 브랜치 출력
-r: 원격 브랜치만 표시
-a: 모든 브랜치를 표시
--list: 브랜치 이름만 출력
-v: 브랜치 이름과 마지막 커밋 메시지 출력
-d <branch_name>: 브랜치 삭제
git check out
브랜치를 전환, 이동하거나, 커밋을 확인하기 위해 작업 디렉토리를 변경하는 명령어
branchname으로 지정한 브랜치로 작업 디렉토리를 전환
-b <branch_name>: 새로운 브랜치를 생성하고 새로 생성된 브랜치로 전환
git checkout [-b] <branch_name>
git checkout <commit_hash>: 커밋 확인
Git Branch
코드 관리가 효율적
작업의 독립성 보장: 개발 속도 향상
안정성
코드 리뷰 및 품질 관리: 코드 품질 향상
배포 및 롤백의 용이성
Feature Branch
각 기능별 독립적인 브랜치를 생성하여 작업
서로의 영역에 영향을 주지 않음.
해당 기능을 설명하는 명칭을 사용
새로운 feature 브랜치에서 작업을 진행하고, 필요한 경우 여러 개의 커밋 생성
기준 브랜치로 병합하기 전에 원격 저장소에 feature 브랜치를 push
git push origin feature/new-feature
Github Flow
규모가 작거나 중간 크기의 프로젝트에 적합
빠른 개발 주기와 지속적인 배포에 초점
기준 브랜치에서 새로운 브랜치 생성
기준 브랜치는 항상 배포 가능한 상태
작업 진행 후 커밋
PullRequest: 작업한 내용을 검토를 부탁함. 다른 커뮤니티 사용자들에게 리뷰를 요청
이후 기준 브랜치로 병합
Git flow
대규모 프로젝트에 적합함.
Master: 안정적인 코드가 저장되는 브랜치, 메인
Develop: 개발 중인 코드 관리를 위한 브랜치
Feature: 새로운 기능 개발을 위한 브랜치(Develop 브랜치로부터 분기)
Release: 새로운 버전 릴리스를 준비하는 브랜치(Develop 브랜치로부터 분기)
Hotfix: 긴급한 버그 수정을 위한 브랜치(Master 브랜치로부터 분기)
개발세발
.
팔로우
다음 포스트
Git/Github 정리
0개의 댓글
댓글 작성