[프로그래머스 인공지능 스쿨]Git
Git이란 무엇인가?
Git이 무엇일까요?
- 분산 버전관리 시스템!
깃의 구조
레포지토리 단위로 이루어져 있다.
중앙에 원격 저장소를 두고(서버) 이를 바탕으로 로컬 저장소를 여러개 둔다. 실제로 우리가 작업하는 공간은 로컬 저장소이고, 여기서 서버에 내용을 푸시/풀하여 협업할 수 있다.
로컬에서 작동하는 레포지토리를 깃으로 관리하고, 원격으로 작동되는 서버의 레포지토리는 깃허브가 관리한다.
Git 시작하기
Git 설치하기
https://git-scm.com/book/ko/v2/시작하기-Git-설치
리눅스나 맥의 경우에는 CLI로 설치 가능!
이 외에는 링크에서의 설명대로 설치해주면 된다.
로컬 저장소 생성
다음 명령을 통해 현재 작업중인 디렉토리를 git 저장소로 지정할 수 있다.
git init
Git 저장소에서 파일의 상태
- LOCAL에서 REMOTE(Repository)로
- git add . : Working Directory -> Staging Area
- git commit : Staging Area -> Local Repository
- git push : Local Repository -> Remote Repository
- REMOTE(Repository)에서 LOCAL로
- git pull : Remote Repository -> Repository
- git reset : Staging Area -> Working Directory
Git 로컬 저장소에 Commit 남기기
- git status를 통해 현재 git 저장소의 상태 확인
git status
- git add <추가할 파일="">을 통해서 커밋에 반영할 파일 지정
추가할>
git add example.py
모든 변경사항을 커밋에 반영하고 싶으면
git add .
- 변경사항이 반영된 New Commit 생성
git commit -m "add example.py"
- git log를 통해 commit을 확인
git log
Commit 기록 확인하기(Author, Commitor, Date, …)
Git의 Branch
Git에서 Branch는 어떤 개념일까?
- 코드의 흐름을 분산해서 가지치기 하는 것!
- 이슈를 따로 가지치기해서(동일한 코드를 복제하는 개념) 독립적인 환경에서 코드를 수정할 수 있게 한다. 동시에 메인 코드는 따로 개발될 수 있고 가지치기했던 내용을 메인 코드에 다시 병합할 수 있다.
Git의 Branch 생성하기
다음 명령을 통해서 Branch를 새로 생성할 수 있다.
git branch <branch_name>
main 브랜치는 master이다.
브랜치를 확인하는 방법
git branch -v
Git의 Branch 전환하기
다음 명령을 통해 현재 작업중인 Branch를 전환할 수 있다.
git checkout <branch_name>
Git의 Branch 병합하기
다음 명령을 통해 현재 작업중인 Branch를 원하는 Branch에 병합할 수 있다.
git merge <branch_name>
Git의 Branch 삭제하기
다음 명령을 통해 Branch를 삭제할 수 있다.
git branch -d <branch_name>
Git과 Github
지금까지 Git의 로컬 저장소에서 할 수 있는 일들을 다뤘다. 이젠 다른 사람과 협업을!
깃허브에서 레포지토리를 만든 뒤 로컬과 연동하는 방법.
git remote add <별칭> <원격저장소 주소>
git remote -v
git branch -M main : master가 깃의 기본 이름인데, 깃허브의 경우 main이라는 이름을 사용한다. 따라서 master 브랜치 이름을 main으로 바꿔준다.
git push <remote_repo_name> <branch_name>
git push main
과제 제출하기
- 과제가 있는 원격 저장소를 자신의 원격 저장소로 Fork한다.
- Fork 한 뒤 원격 저장소에서 로컬 저장소로 파일 받아오기
-
git clone <원격저장소 주소>
- 자신의 로컬 저장소에서 브랜치를 만들어 작업을 진행하고 Push한다.
-
git branch week3/여채린
-
git checkout week3/여채린
- 작업하기…
-
- 자신의 원격 저장소에서 과제 저장소로 Pull Request한다.