분산 버전관리 시스템
👉독립적으로 작업이 가능하고, 다른 사람이 작업한 것이 있으면 저장소가 갱신이 되고 자신의 코드에 반영해서 작업할 수 있다!
링크에 접속하여 Git 설치!
로컬 저장소 생성
: 다음 명령을 통해 현재 작업중인 디렉토리를 git 저장소로 지정할 수 있음
git init
LOCAL : 로컬 저장소 / REMOTE : 원격 저장소 (Github)
git add
파일을 Staging Area 에 추가
예) git add example.py
: example.py를 생성(혹은 수정)하고, 이를 Commit에 반영하고자 추가
git status
Git 프로젝트 내의 파일 상태를 확인
git commit -m <commit_message>
커밋 메시지와 함께 커밋
예) git commit -m "add example.py"
"add example.py" 라는 커밋 메시지로 커밋
-m : message를 남기는 옵션
git log
커밋 기록을 확인 (Author, Commitor, Date)
git add example.py # example.py 파일 추가
git commit -m "add example.py" # example.py 파일 커밋
코드의 흐름을 분산
Branch → 가지치기🌿
개발을 진행하다보면 다음과 같은 일이 생긴다.
👉가지치기를 통해 코드를 따로 가져와서 코드를 추가하거나 수정한다.
git branch <branch_name>
: 'branch_name' Branch 새로 생성
📌master
라는 브랜치가 기본적으로 생성되어 있음!
git branch -v
: 존재하는 브랜치 확인git branch develop # develop 브랜치 생성
git checkout <branch_name>
: 현재 작업중인 Branch를 'branch_name' 으로 전환
git checkout develop # develop 브랜치로 전환
# example.py 파일 내용을 수정...
git add example.py
git commit -m "modified example.py" # develop 브랜치에서 커밋을 하게 됨
git merge <branch_name>
: 현재 작업중인 Branch를 원하는 'branch_name'에 병합
Branch가 develop 인 상태에서 git log
를 실행하면 다음과 같은 화면이 뜬다.
📌HEAD
는 현재 작업중인 Branch 를 가리키는 포인터!
git checkout master
, git log
실행
git merge develop
실행
👉fast-forward 방식으로 develop과 병합한다.
git log
실행
👉master와 develop 은 같은 커밋을 가지게 되는것을 확인할 수 있다.
git branch -d <branch_name>
: 'branch_name' 삭제
git branch -d develop
실행
git log
실행
👉develop 브랜치가 삭제된 것을 확인!
GitHub: 원격저장소
GitHub 사이트 → GitHub 로그인 → 원격저장소 생성
git remote add <별칭> <원격저장소 주소>
<별칭>에는 주로 'origin'을 적음
<원격저장소 주소>는 다음과 같이 생성한 원격저장소에 있음
git remote add origin https://github.com/example/example.git
git push <remote_repo_name> <branch_name>
: 로컬저장소에서 작업하던 정보들을 원격저장소에 전달
📌로컬 저장소에서는 기본 Branch로 master를 사용하지만,
GitHub에서는 main이라는 이름을 사용!
git branch -M main # 브랜치를 main으로 변경
git push origin main # 원격저장소에 반경
Fork
한다.Push
한다.Pull Request
한다.git clone <remote_repo> <folder_name>
git clone https://github.com/leeyongjoo/programmers_kdt_II.git
cd programmers_kdt_II
ls
브랜치 양식은 "해당주차""이름"
git branch -v
git branch week3이용주
git checkout week3이용주
git branch -v
Fork
해온 저장소에 수정한 내용을 반영하고 싶다고 요청을 보내는 것!
제목은 [3주차] OOO(이름)
내용은 어떤 내용을 바꿨는지 혹은 어떤 점이 어려웠는지 적을 것. (마크다운 문법 사용)
base repository : pr를 날릴 대상 / base: 과제가 나왔던 브랜치
head repository : pr을 날리고 있는 주체 / compare : 과제를 시도하기 전 브랜치
*pr: pull request