ALOHA CLASS
/
CI/CD
/
Git
Search
Share
Git
git 기초
Git 기초
1.
Git 이란?
2.
Git 다운로드
3.
Git 설치
Git 이란?
버전 관리 도구
분산 버전 관리 시스템(Distributed Version Control System, DVCS)으로, 소프트웨어 개발에서 소스 코드의 버전을 관리하는 도구입니다. 소스 코드의 변경 이력을 추적하고, 여러 사용자가 동시에 작업하고 있는 경우에도 효율적으로 협업할 수 있도록 도와줍니다.
WinGet 설치
Git 설치
•
Github
•
주요 기능
•
Github 원격 저장소 생성
Github
Git 기반의 버전 관리 및 협업을 지원하는 웹 호스팅 서비스
GitHub: Let’s build from here
GitHub is where over 100 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 fea...
Github
Git 최초 설정
username 등록
email 등록
최초 설정 후, push & pull 하면 브라우저를 통해 인증한다.
Git 최초 설정
•
원격저장소
로컬저장소
•
로컬저장소
원격저장소
원격저장소
로컬저장소
Git Clone
원격 저장소에 있는 Git 저장소를 복제하여 로컬 저장소로 가져오는 명령어
1.
Github 원격 저장소 접속
2.
원격 저장소 URL 복사
3.
git clone
Git x Gitub 연동
Git 명령어
Git etc
Git 기본 branch 설정하기
git init 시, 기본 branch 를 main 으로 설정합니다.
Git 기본 branch 확인하기
Git 기본 branch 설정하기 master, main branch
1.
로컬 저장소 초기화
:
2.
파일 추적 및 스테이징
:
3.
커밋
:
4.
변경 내역 확인
:
5.
이력 관리
:
Git 기본 버전 관리
•
Github 원격 저장소 생성
•
Github 팀원 초대
•
Clone
•
Branch 관리
•
Push
•
Pull
•
Checkout
•
Coding
•
Merge
•
이력 관리
•
Issue
•
Discussions
•
Actions
Git 팀 협업 버전 관리
•
git log
: 커밋 로그를 확인합니다.
•
git revert <commit>
: 이전 커밋을 되돌립니다.
•
git reset
: 스테이징 영역이나 작업 디렉토리를 초기화합니다.
Git 이력 관리
Git 캐시 삭제
주의할 점은 캐시 삭제 후 반드시 변경사항을 다시 스테이징하고 커밋해야 한다는 것입니다.
캐시 삭제
전체 스테이징
Git 캐시 삭제
Github 자격 증명 관리
자격 증명 관리
1.
제어판
2.
사용자 계정
3.
windows 자격 증명
Github 자격 증명 관리
Git x Github 실습
Github 원격 저장소 만들기
Github 팀원 초대하기
Git Clone
git Clone
예시:
Git Clone
branch 생성 및 반영
각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.
작업이 완료되면 메인 브랜치에 변경사항을 병합하여 작업을 완료할 수 있습니다.
Git Branch 생성하기
Git Branch 확인하기
branch 생성 및 전환
branch
switch
checkout
Git Commit
Git Commit 명령어
Git Commit
commit
Git Push
commit된 변경 사항을 GitHub와 같은 원격 저장소와 동기화하는 데 사용됩니다.
기본 명령어
예시:
Git Push
push
Git Pull
기본 명령어
예시:
주요 옵션
Git Pull
pull
Git fetch
Git fetch는 원격 저장소의 새로운 브랜치와 그 변경사항도 가져옵니다. 로컬에 없는 새 브랜치가 원격에 있다면, 원격 브랜치로 가져오게 됩니다.
원격의 새 브랜치가 로컬에 반영됨
•
원격 브랜치 목록 확인
Git fetch
fetch
로컬 브랜치가 원격 브랜치를 추적하도록 설정하여, 이후
git push
나
git pull
명령어를 간단하게 사용할 수 있습니다.
기본 명령어
예시:
또는 짧은 형태:
Git Branch --set-upstream-to 옵션
Git Branch
branch
Git Merge
서로 다른 브랜치를 하나로 통합하는 Git의 핵심 명령어로, 브랜치 간의 변경 사항을 하나의 브랜치로 결합합니다.
Git Merge 명령어
기본 명령어
현재 브랜치에 다른 브랜치를 병합
병합 커밋 메시지 작성
Git Merge
merge
Git Conflict(충돌)이란?
충돌이 발생하는 일반적인 상황
•
여러 개발자가 동일한 파일의 동일한 줄을 수정할 때
•
한 브랜치에서 파일을 수정하고, 다른 브랜치에서 같은 파일을 삭제했을 때
•
서로 다른 브랜치에서 같은 이름의 파일을 생성했을 때
Git Conflict & 충돌 해결
conflict
Git Pull Request
특히 협업 환경에서 코드 리뷰 및 병합 과정을 시각적으로 관리할 수 있게 해줍니다.
기본 개념
전체 흐름
Git Pull Request
pull request
PR
GitHub Fork란?
Fork의 특징
Git fork
fork
Git Amend
Git Amend는 가장 최근의 커밋을 수정할 수 있는 기능으로, 커밋 메시지나 파일 내용을 변경할 때 사용합니다.
Amend란?
Amend는 "수정하다"라는 뜻으로, Git에서는 마지막 커밋을 다시 작성하는 것을 의미합니다. 새로운 커밋을 만드는 것이 아니라, 기존 커밋을 덮어쓰는 방식입니다.
Git Amend 명령어
기본 명령어
마지막 커밋을 수정합니다.
편집기가 열리면서 커밋 메시지를 수정할 수 있습니다.
Amend 옵션
사용 예시
Git amend
commit
Git Cherry-pick
Git Cherry-pick은
특정 커밋을 선택하여 현재 브랜치에 적용
하는 기능으로, 다른 브랜치의 특정 변경사항만 가져올 수 있습니다.
Cherry-pick이란?
Cherry-pick은 말 그대로 "체리를 골라 먹는다"는 의미로, 다른 브랜치에 있는 여러 커밋 중에서 원하는 커밋만 선택해서 현재 브랜치에 적용하는 것을 말합니다.
Git Cherry-pick 명령어
기본 명령어
지정한 커밋을 현재 브랜치에 적용합니다.
커밋 해시는 필수값으로, 적용하고자 하는 커밋의 해시를 반드시 지정해야 합니다.
Cherry-pick 옵션
Git cherry-pick
cherry-pick
Git Reset
Git Reset은
커밋 히스토리를 되돌리고 작업 디렉토리의 상태를 변경
하는 명령어로, HEAD 포인터를 이전 커밋으로 이동시켜 변경사항을 관리합니다.
Git Reset 명령어
기본 명령어
HEAD를 지정한 커밋으로 이동시키고, 옵션에 따라 스테이징 영역과 작업 디렉토리를 변경합니다.
옵션을 생략하면 기본적으로
--mixed
모드로 동작합니다.
Reset 옵션
Git reset
reset
Git Revert
Git Revert는
이전 커밋을 취소하고 되돌리는 명령어
로, 작업 내역을 유지하면서 안전하게 변경사항을 되돌릴 수 있는 기능입니다.
Git Revert 명령어
기본 명령어
특정 커밋의 변경사항을 되돌립니다.
새로운 커밋을 생성하여 이전 커밋을 취소하므로, 히스토리가 보존됩니다.
Revert 옵션
Git revert
revert
Git Stash
Git Stash는
현재 작업 중인 변경사항을 임시로 저장하고
나중에 다시 적용할 수 있게 해주는 기능입니다. 작업 디렉토리를 깨끗하게 유지하면서
다른 브랜치로 전환하거나 긴급한 작업을 처리할 때 유용
합니다.
Stash란?
Stash는 현재 작업 중인 변경사항(수정된 파일, 스테이징된 파일)을 임시 저장소에 보관하는 기능입니다. 이를 통해 작업 디렉토리를 마지막 커밋 상태로 되돌릴 수 있으며, 나중에 저장한 변경사항을 다시 불러와 작업을 계속할 수 있습니다.
Git Stash 명령어
기본 명령어
현재 작업 중인 변경사항을 임시로 저장합니다.
수정된 추적 파일과 스테이징된 변경사항을 모두 stash에 저장합니다.
Git statsh
stash
Git Release
Git Release는 소프트웨어의 특정 버전을 공식적으로 배포하는 과정으로, 안정적인 코드 스냅샷을 태그로 표시하여 사용자에게 제공하는 핵심 기능입니다.
릴리스(Release)란?
릴리스는 개발된 소프트웨어의 특정 버전을 사용자에게 공식적으로 배포하는 것을 의미합니다. Git에서는 태그를 사용하여 특정 커밋을 릴리스 버전으로 표시하고, 이를 통해 안정적인 버전을 관리합니다. • 릴리스는 주로 시맨틱 버저닝(Semantic Versioning)을 따라 v1.0.0, v2.1.3과 같은 형식으로 명명됩니다. • 각 릴리스는 변경 사항, 버그 수정, 새로운 기능 등을 포함한 릴리스 노트와 함께 제공됩니다. • GitHub, GitLab 등의 플랫폼에서는 릴리스 페이지를 통해 소스 코드, 바이너리 파일 등을 다운로드할 수 있게 제공합니다.
Git Release 명령어
기본 명령어
특정 커밋에 태그를 생성하여 릴리스 버전을 표시합니다.
태그 이름과 메시지를 작성하여 릴리스의 의미를 명확히 합니다.
Release 관련 명령어
Git Release
tag
Git TIP
커밋 메시지 컨벤션
Conventional Commits 기반 실무 적용 가이드
기본 형식 (표준)
좋은 예시
Type 종류 (가장 중요)
Subject 작성 규칙
커밋 메시지 컨벤션
Git 브랜치 네이밍 컨벤션
기본 원칙 (공통)
•
소문자 사용
•
단어 구분은
/
와
-
사용
•
의미가 한눈에 보이게
FeatureLogin
,
fix_bug
feature/login
,
fix/login-error
기본 구조 (표준)
예시
브랜치 타입 (가장 중요)
브랜치 네이밍 컨벤션
Git 협업 실습
역할분담
프로젝트 구조
module-info.java
Git 협업 게시판 만들기
Git Actions
GitHub Actions
코드를 호스팅하고 버전 관리를 할 때 사용할 수 있는 자동화 및 CI/CD(Continuous Integration/Continuous Deployment) 도구
Workflow (워크플로우)
GitHub Actions에서 수행되는 자동화 프로세스를 정의하는 요소입니다.
•
.github/workflows
디렉토리에 YAML 형식의 워크플로우 파일을 작성하여 정의합니다.
•
워크플로우는
이벤트(예: 푸시, 풀 리퀘스트 등)
가 발생할 때 시작되며, 일련의 작업 단계를 정의하여 실행됩니다.
GitHub Actions