끄적끄적 코딩
Published 2023. 1. 17. 01:01
Git 개념 및 명령어 GIT

Git이란
Version Control System
프로그램의 버전 관리를 위한 툴

CLI vs GUI
Git에서 뭔가를 실행하기 위한 어떤 명령어들을 사용할 때 CLI 사용
프로젝트의 상태를 Git상에서 자세히 살펴보아야 할 때 GUI 사용

Git 최초 설정
git config --global user.name "J3SUNG"
git config --global user.email "wptjd6141@naver.com"

설정 확인
git config --list
git config --global user.name
git config --global user.email

기본 브랜치명 변경
git config --global init.defaultBranch main

git init
.git 폴더가 생성, 해당 폴더에서 git 관리내역을 포함하고 있음

git status
현재 폴더에서 폴더의 상황을 git의 관점으로 보여줌

.gitignore
git 관리에 포함시키지 않을 파일들 관리

file.c 		// 모든 file.c
/file.c		// 최상위 폴더의 file.c
*.c 		// 모든 .c 확장자 파일
!test.c		// .c확장자지만 무시하지 않을 파일
logs		// logs란 이름의 파일 또는 폴더와 그 내용들
logs/ 		// logs란 이름의 폴더와 그 내용들
logs/*.c 	// logs 폴더 바로 안의 .c 파일들
logs/**/*.c	// logs 폴더 내에 모든 .c 파일들

git commit
파일 및 폴더의 추가/변경 사항을 저장소에 기록


git log
커밋 된 스냅 샷을 표시하는 명령
커밋 된 변경 내용 목록에 대한 필터링 특정 변경 사항 검색 가능

git reset
git reset --hard (돌아갈 커밋 해시)
이전 시점으로 돌아가고 이후 행적은 히스토리에서 제거

git revert
git revert (되돌릴 커밋 해시)
이전 시점을 다음 행적으로 등록
git revert --no-commit (되돌릴 커밋 해시)
이전 시점을 현재 시점으로 변경 


Branch : 분기된 가지 (다른 차원)
프로젝트를 하나 이상의 모습으로 관리해야 할 때
여러 작업들이 각각 독립되어 진행될 때

git branch (브런치 이름)
branch 추가하기

git branch
branch 목록 보기

git switch (브런치 이름)
branch 이동 

git switch -c (브런치 이름)
branch 생성 후 이동

git branch -d (브런치 이름)
branch 삭제

git branch -D (브런치 이름)
branch 강제 삭제

git push (origin) --delete (브런치 이름)
원격 저장소의 branch 제거

git branch -m (브런치 이름) (바꿀 이름)
branch 이름 변경

git merge
두개의 다른 branch를 합쳐서 하나의 branch로 만듦
합쳐진 branch가 남아 있음

git rebase
합치는 branch를 뒤에 이어붙여서 하나의 branch로 만듦
합쳐진 branch가 남아 있지 않음

git merge (브런치 A)
현재 브런치에 브런치 A를 합침

git rebase (브런치 A)
브런치 A에 현재 브런치를 합침

git merge --abort
merge 충돌 해결 문제 중단

git rebase --abort
rebase 충돌 해결 문제 중단

git rebase --continue
rebase 충돌 해결 후 진행

GitHub, GitLab, Bitbucket
코드 공유 및 협업 서비스

git remote add origin (원격 저장소 주소)
로컬의 Git 저장소에 원격 저장소로의 연결 추가

git remote
이 프로젝트와 연결된 목록을 볼 수 있음

git remote -v
이 프로젝트와 연결된 목록을 자세하게 볼 수 있음

git branch -M main
기본 브랜치명을 main으로 변경

git clone (원격 저장소 주소)
원격 저장소에 있는 내용들을 현재 경로로 다운로드

git push -u origin main
로컬 저장소의 커밋 내역들 원격으로 push

git push --force
로컬 저장소의 커밋 내역을 원격으로 강제 push

git pull 
원격 저장소의 커밋 내역을 로컬 저장소로 가져오는 작업

git pull --no-rebase 
원격 저장소의 커밋을 가져올 때 merge 방식으로 실행

git pull --rebase
원격 저장소의 커밋을 가져올 때 rebase 방식으로 실행

git fetch
원격 저장소에서 최신 메타데이터 정보를 받음

검색 태그