Git은 소스 코드 버전 관리 시스템(VCS, Version Control System) 중
하나로, 소프트웨어 개발에서 코드의 변경 이력을 효과적으로 관리할 수
있게 해주는 도구입니다. Git을 사용하면 여러 개발자들이 동시에
작업하고 있는 프로젝트에서 발생하는 코드의 수정, 추가, 삭제 등의
변경 사항을 효율적으로 추적하고 관리할 수 있습니다.
Git은 로컬에서 코드를 관리하는 도구이고, GitHub은 Git 저장소를
온라인에서 호스팅하고 협업하는 플랫폼입니다.
❤️Git 초기설정❤️
초기 설정을 통해 Git은 커밋할 때마다 사용자 정보를 기록하고,
편집기 설정에 따라 커밋 메시지를 작성할 수 있습니다.
현재 위치에서 지역 저장소를 생성하기
git init
git 환경에서 [사용자명]으로 지정하기
git config --global user.name "[사용자명]"
git 환경에서 [사용자 이메일]로 지정하기
git config --global user.email "[사용자 이메일]"
🩷Git 스테이징🩷
Git의 스테이징(Staging)은 변경된 파일 중에서 어떤 파일들을 다음
커밋에 포함시킬지를 선택하는 단계를 의미합니다. 스테이징을 통해
원하는 변경 사항만을 기록하고 커밋할 수 있습니다.
모든 파일을 스테이지에 올리기
git add .
특정 파일을 스테이지에 올리기
git add [파일명.확장자명]
상태 확인하기
git status
파일 add 취소하기
git restore --staged 파일명
모든 파일을 스테이지에 올리기
git reset HEAD
Git 커밋🧡
git commit은 Git에서 변경 사항을 저장하는 작업을 의미합니다. 이
명령어를 사용하면 스테이징 영역에 있는 파일들의 변경 내용을 로컬
저장소에 기록하여 새로운 버전(커밋)을 생성합니다.
[메시지]를 붙여 커밋하기
git commit -m "[메시지]"
최근 순서대로 커밋 취소하기
git reset HEAD^
롤백할 커밋을 지정하기
git reset [커밋 해시]
reset의 3가지 옵션
git reset --soft [커밋ID] ➡️ head 만 바뀜
git reset --mixed [커밋ID] ➡️ staging도 바뀜
git reset --hard [커밋ID] ➡️ working디렉토리/staging 모두 바꿈
💛Git 이력💛
Git 이력 확인은 프로젝트의 변경 이력을 살펴보는 것을 의미합니다.
Git을 사용하면 어떤 작업이 언제, 누가, 어떤 변경을 했는지에 대한
정보를 확인할 수 있습니다.
커밋 내역 확인하기
git log ➡️ 전체 이력을 보여줌
git shortlog
git log --online ➡️ 커밋, 커밋메세지를 보여줌
git log -p ➡️ 변경된 데이터를 함께 보여줌
git log [파일명] ➡️ 특정 파일에 대한 이력을 보여줌
git log -p [파일명] ➡️ 특정 파일에 대한 이력과 변경된 데이터를
함께 보여줌
git log --stat ➡️ 커밋마다 파일의 추가/삭제된 통계데이터를
보여줌
git log --graph ➡️ 브랜치 분기 및 병합 내용을 그래프로 보여줌
특정 커밋 내역 확인하기
git show [커밋 id]
최근 버전과 작업 폴더의 수정 파일 사이의 차이를 출력하기
git diff ➡️ modified 상태의 file과 마지막 commit 비교
git diff --staged ➡️ staged 상태의 file과 마지막 commit 비교
git diff [브랜치명] ➡️ 현재브랜치와 선택된 브랜치와 차이점 비교
💚원격 저장소💚
Git에서 원격 저장소는 프로젝트의 중앙 서버로, 여러 개발자가
협업하고 변경 사항을 공유하는 공간입니다. 가장 많이 사용되는 원격
저장소 호스팅 서비스에는 GitHub, GitLab, Bitbucket 등이 있습니다.
원격 저장소에 연결하기
git remote add origin [레포지토리 주소]
옵션 종류 보기
git remote --help
추가한 원격저장소의 목록 확인하기
git remote
커밋을 맨 처음 브랜치에 올리기
git push -u origin [branchname]
커밋을 브랜치에 올리기
git push
git push origin [branchname]
특정 브랜치의 커밋을 지역 저장소로 가져오기
git pull origin [branchname]
특정 브랜치 복사하기
git clone [레포지토리 주소]
특정 브랜치의 커밋만 가져오기(merge X)
git fetch
브랜치 삭제(연결 끊기)
git remote remove origin
💙Git 브랜치
Git에서 원격 저장소는 프로젝트의 중앙 서버로, 여러 개발자가
협업하고 변경 사항을 공유하는 공간입니다. 가장 많이 사용되는 원격
저장소 호스팅 서비스에는 GitHub, GitLab, Bitbucket 등이 있습니다.
브랜치 확인하기
git branch
브랜치 추가 / 삭제하기
git branch [branchname] ➡️ 추가
git branch -d [branchname] ➡️ 삭제
특정 브랜치로 이동하기
git switch [branchname]
git checkout [branchname] ➡️ 브랜치 나가기
현재 브랜치에서 다른 브랜치를 merge하기
git merge [branchname]
💜Git stash💜
git stash는 현재 작업 디렉토리의 변경 사항을 일시적으로 저장하고,
깨끗한 상태로 돌아갈 수 있는 기능을 제공하는 Git 명령어입니다.
주로 아직 완료되지 않은 작업을 갑작스럽게 다른 브랜치로
이동하거나, 다른 작업을 해야할 때 유용하게 사용됩니다.
staged, modified 상태의 파일을 저장하기
git stash
stash 적용하기
git stash apply
stash를 반영하고 자동 삭제하기
git stash pop
🖤Git blame
git blame 명령어는 파일의 각 라인이 어떤 커밋에서 기인하는지를
확인하는 데 사용됩니다. 다시 말해, 파일의 각 라인에 대해 어떤
커밋에서 수정되었는지, 그리고 해당 수정을 어떤 개발자가 했는지를
확인할 수 있습니다.
해당되는 파일의 모든 수정 내역 확인하기
git blame [파일명]