Local 저장소
- 내 컴퓨터에 저장된 Git 저장소입니다.
- Local 저장소에 코드를 작성하고, 변경 사항을 커밋(Commit)하여 기록합니다.
원격 저장소와 로컬 저장소
Git에서 Local과 Remote는 각각의 저장소가 위치한 곳을 의미
Local 저장소
- 내 컴퓨터에 저장된 Git 저장소입니다.
- Local 저장소에 코드를 작성하고, 변경 사항을 커밋(Commit)하여 기록합니다.
Remote 저장소
- 원격 저장소에 저장된 Git 저장소입니다.
- 여러 개발자가 원격 저장소를 통해 협업할 수 있습니다.
origin
키워드가 가끔 보이는데 remote
라고 생각하면 됩니다.
- Local에서 작업한 변경사항을 다른 사람들과 공유하려면 Remote 저장소에 변경사항을 업데이트해야 합니다.
- Push나 Pull Request를 사용합니다.
- 반대로 Remote 저장소에서 작업한 내용을 가져오려면 풀(Pull) 명령어를 사용해서 Local 로 내려받을 수 있습니다.
아이디 등록
git을 사용하는 사람이 누구인지 표시하기 위해 이름과 이메일을 등록해야 합니다.
나중에 작업을 누가 어디서 했는지 식별하기 위해서 사용합니다.
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
아이디 등록 확인
git config --list
- git init
- 새로운 로컬 git repository(저장소)를 생성합니다.
- .git 디렉토리가 생성되고, 해당 폴더에서 모든 변경 사항이 Git으로 관리되기 시작합니다.
- 원격 저장소가 없고 원격저장소에 코드를 올리려면 동기화 작업이 필요합니다.
- 첫 commit을 하지 않는다면 branch 만들거나 수정할 수 없습니다.
git init - 명령어를 생성한다.
- git clone
- 원격 저장소(Remote Repository)를 복제하여 로컬 저장소로 가져옵니다.
- 이미 존재하는 원격 저장소에서 프로젝트를 내려받아 로컬에서 작업을 시작할 때 사용합니다.
- push, pull 등을 사용하여 원격저장소와 로컬저장소의 싱크를 맞출 수 있습니다.
git clone URL - URL에 있는 Remote Repository를 현재 폴더에 클론하여 가져옵니다.
독립적인 작업흐름을 관리하는 방법
- Branch라는 개념을 사용하여 프로젝트 내에서 독립적인 작업 흐름을 만들기 위한 기능을 제공합니다.
- 브랜치는 프로젝트의 코드 베이스에서 새로운 작업 공간을 분리하여,
기존 코드에 영향을 주지 않고 새로운 기능을 개발하거나 버그를 수정할 수 있습니다
- 나뭇가지처럼 새로운 작업흐름을 만들 수 있습니다.
처음 git repository를 만들면 main 또는 master 브랜치가 기본 생성됩니다.
이럴때 사용됩니다 -> 새로운 기능을 개발,버그 수정, 여러 개발자가 각자의 공간을 만들어서 사용
git branch
-
branch의 목록을 확인할 때 사용하는 명령어
-
초록색으로 표시되어 있는것이 현재 branch
git branch 새로운브랜치이름
-
새로운 branch를 만들 때 사용하는 명령어
git switch 브랜치이름
-
현재 작업중인 브랜치를 변경하는 명령어
-
예전에는 git checkout을 사용했지만 현재는 switch를 사용하면 됩니다.
-
현재 브랜치에서 수정사항이 없을 때 변경이 가능합니다.
- 수정 사항이 있을 때는 수정사항을 삭제하거나, 커밋을 해서 수정사항을 없애주어야 합니다.
변경사항을 저장하는 방법
- 변경사항을 저장하기 위해서는 변경된 파일을 스테이지에 올리고 commit을 하면 됩니다.
변경사항을 저장하는 방법
- 변경사항을 저장하기 위해서는 변경된 파일을 스테이지에 올리고 commit을 하면 됩니다.
git commit -m "커밋 메시지"
- 위의 형태로 작성합니다. 커밋 메시지 부분은 어떤 작업을 했는지 작성하곤 합니다.
git status
- Git에서 현재 작업 중인 디렉토리(폴더)의 상태를 볼 수 있습니다.
- 현재 작업 중인 브랜치, 스테이징된 파일, 수정된 파일 등등을 확인할 수 있습니다.
변경사항을 remote와 싱크를 맞추는 방법
git fetch
- 원격 저장소의 변경 사항을 로컬로 가져오지만, 병합하지 않는 명령어 입니다.
- 최신 상태를 로컬 저장소로 가져오지만, 로컬 브랜치에 반영하지 않습니다.
- 원격 저장소에서 어떤 변경 사항이 있는지 확인 후, 필요에 따라 수동으로 병합할 수 있습니다.
git fetch origin
git fetch origin/main
- 원격 저장소(origin)의 모든 브랜치에서 최신 변경 사항을 가져올 수 있고,
특정 브랜치의 최신 변경 사항을 가져올 수 있습니다.
git merge
- 두개의 브랜치의 변경사항을 하나로 합치는 명령어입니다.
- 두 브랜치에서 같은 파일의 같은 부분을 다르게 수정했을 때 충돌이 발생할 수 있으며, 이 때 충돌을 수동으로 해결해야 합니다.
git merge 브랜치이름
git merge
git pull
- 원격 저장소의 변경 사항을 로컬 저장소로 가져와 병합하는 명령어 입니다.
- git fetch 와 git merge 를 한번에 처리해줍니다.
git pull origin 브랜치 이름
git pull origin main
git pull origin master
git push
- 로컬 저장소에 커밋된 변경사항을 원격 저장소로 업로드 합니다.
git push origin 브랜치이름
git push origin main
git push origin feature1