내용이 지워질 경우를 대비해 보존을 해주는 시스템
Fork: 내 계정으로 Remote Repository를 가져옴
Clone: Remote Repository에 있는 파일을 작업하기 위해 내 컴퓨터로 복사해옴
git clone <레파지토리 주소>
~ 기능 구현 완료 ~
Commit 으로 변경 사항의 저장 기록 남기기 전, 현재 Local에 어떤 것이 있는지 확인 → 내 로컬의 staging area, untracked files 목록을 확인 가능 git status
add: 파일을 commit 할 수 있는 상태로 만들어 줌.
git add <파일명>
: 내 Local의 untracked file을 Git 관리 하인 staging area로 추가.
Staging area에 추가한 상태에서 파일을 수정한다면 → staged면서 modified인 상태가 됨.
git add .
: 모든 파일을 한번에 추가 (선호되지 않음)
restore: 변경사항을 폐기하는 명령어. commit 되지 않은 Local Repository의 변경 사항 폐기 후 다시 처음으로 clone 받아 온 상태가 됨. git restore <파일명>
Commit: 변경 사항 저장! 스냅샷 찍듯 변경된 이력을 언제, 누가, 어떻게 변경되었는지 저장할 수 있음. -m 을 사용해 코멘트 작성 가능 git commit -m ‘<커밋 코멘트>’
Reset: local에서 commit한 내용을 취소할 때
git reset HEAD^
→ 가장 최신의 commit을 취소함. HEAD~1도 가능
Push: Local의 commit 기록들을 Remote로 업로드
git push <origin> <branch>
: 리모트에 있는 origin의 master 브랜치에 local Repository의 변경 사항 업로드
git log
: 남긴 commit들이 잘 기록되었는지 확인.
Pull Request(PR): Remote에 Push해 놓은 변경사항을 다른 사람에게 알림
git init
: 디렉토리를 Git Repository로 변환하거나 새로운 Repository를 초기화하는데 사용git remote add origin <Repository 주소>
git remote add <다른사람><Repository 주소>
git remote -v
git pull <다른사람><branch>
: Remote Repository의 branch 내용을 Local Repository로 가져옴. 받아온 내용은 자동으로 병합됨.git status
로 어떤 파일이 충돌되고 있는지 알 수 있음.git commit
으로 커밋 코멘트 작성 → git push origin master
로 Remote Repository에 Push독립적으로 어떤 작업을 진행하기 위한 개념
각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에 여러 작업을 동시에 진행할 수 있음.
장점
한 소스코드에서 동시에 다양한 작업을 할 수 있다.
소스코드의 한 시점과 동일한 상태를 만들고, 브랜치를 넘나들며 작업을 수행할 수 있다.
각각의 브랜치에서 생긴 변화가 다른 브랜치에 영향을 주지 않고 독립적으로 코딩을 진행할 수 있다.
master 또는 main이라는 이름을 가진 통합 브랜치에 뿌리를 둠.
나누어진 브랜치에서 각자 독립적인 작업 영역(저장소) 안에서 마음대로 소스코드를 변경할 수 있음.
분리된 작업 영역(브랜치)에서 변경된 내용들은 다른 브랜치와 병합(merge)함으로써 새로운 하나의 브랜치로 모을 수 있음.
브랜치 종류
새로운 브랜치 생성
git branch 새로운 브랜치 이름
새로운 브랜치 생성 후 해당 브랜치로 전환
git switch -c 새로운 브랜치 이름
git checkout -b 새로운 브랜치 이름
브랜치 목록 확인
git branch
브랜치 목록과 각 브랜치의 최근 커밋 확인
git branch -v
브랜치 삭제
git branch -d 삭제할 브랜치 이름
git branch -D
: 병합하지 않은 브랜치를 강제 삭제하는 방법
브랜치 전환
git switch 브랜치 이름
git checkout 브랜치 이름
브랜치 병합 (master 브랜치로 dev 브랜치를 병합할 때)
git checkout master
: 먼저 master 브랜치로 이동
git merge dev
로그에 모든 브랜치를 그래프로 표현
git log --branches --graph --decorate
아직 commit 하지 않은 작업을 스택에 입시로 저장
git stash
feature/login을 만들고, 세부 기능인 feature/login-oauth를 따로 만들고, feature/login과 feature/login-oauth를 병합하고 싶을 때:
git clone
명령어로 Repository를 Local로 가져옴.
브랜치를 생성하고 생성한 브랜치로 이동하기
브랜치 생성을 잘 했는지 확인하기 위해 생성한 브랜치 목록 및 현재 위치한 브랜치 확인하기 git branch
로그인 기능을 만들고 싶다! feature/login이라는 브랜치 생성하고 브랜치로 이동 git checkout -b feature/login
로그인에 oauth 기능을 추가하고 싶다! feature/login-oauth 라는 이름으로 feature/login 브랜치에서 파생된 브랜치를 하나 더 만들어서 작업함. git checkout -b feature/login-oauth
feature/login-oauth를 구현 완료했다면 feature/login 브랜치로 병합(merge)해야 한다. 우선 feature/login으로 이동해야 한다. git checkout feature/login
현재 위치가 feature/login 상태에서 git merge feature/login-oauth
명령을 입력해 병합한다.
로컬의 작업 내용을 Remote Repository에 업로드: git push origin feature/login
merge와 rebase의 차이
git rebase main feature/login
명령어를 입력하면 main의 가장 최신 커밋으로 브랜치가 가리키는 곳이 변경됨.더 많은 git 명령어 알아보기 >> https://dangitgit.com/ko