Git vs GitHub
GitHub: Where the world builds software
+
버튼을 누른 뒤 나타나는 메뉴에서 New repository
를 선택Create repository
버튼을 통해 새로운 repository를 생성생성된 repository의 스타팅 페이지에서 ...or push an existing repository from the command line
에 따라, 기존 로컬환경에 생성된 Git repository에 연결
git remote add origin
명령어는 origin이라는 이름의 URL을 통해 컴퓨터의 로컬 repository와 GitHub repository를 연결git remote add origin https://github.com/<your-username>/<your-repo-name>.git
이름이 꼭 origin일 필요는 없지만, remote 주소가 한 개라면 보통 origin으로 지정함
git push -u origin master
위 과정이 성공적으로 수행되었다면, GitHub의 repository 페이지를 새로고침하면, 로컬에서 push한 코드가 업로드 된 것을 확인할 수 있음
로컬 repo를 미리 생성 후 연결하지 않고, GitHub repo를 먼저 생성하여 clone을 받아 로컬환경에 다운로드
git clone <github-repo-link>
위 명령어를 수행하면, 해당 경로에 Clone받은 GitHub Repository의 이름을 그대로 딴 폴더가 생성되며,
해당 폴더 내에 clone 시점의 remote repository에 존재했던 모든 폴더 및 파일들이 복제됨
위 방법으로 다른 개발자들의 Public Repository를 클론받아 작업할 수 있다.
로컬 Git Repo를 GitHub remote repository와 연결 후, 작업한 내용에 대해 다시 push를 해줘야 업데이트됨
git add .
git commit -m "This is first commit"
git push origin master
master
브랜치는 항상 잘 작동하고 안정적인 버전의 코드를 포함해야 함master
브랜치에 영향없이 동일한 작업환경에서 기능을 추가하거나 테스트를 진행할 수 있음master
브랜치와 merge함git checkout -b <feature/greetings>
git add .
git commit -m "Second Commit"
push
를 통해 remote에 올림git push origin feature/greetings
커스텀 브랜치를 push 후, master
브랜치에 적용될 준비가 된다면 Pull Request(PR)
을 통해 프로젝트 오너에게 브랜치에서의 작업 내용을 master
브랜치에 반영해달라는 요청을 보낼 수 있음
Pull Request
에서는 해당 repository 열람 권한이 있는 개발자들이 작업 내용에 대한 리뷰를 하거나 변경 사항을 확인할 수 있음
Create pull request
를 누름master
와 충돌이 발생하지 않는다면 merge
될 준비가 완료다양한 원인에 의해 Pull Request 들이 master
브랜치와 충돌이 발생할 수 있음
(대표적 상황) master
브랜치와 파일 겹쳐서, 어떤 버전의 코드를 선택해야할 지 모를 때
위 상황에서는 개발자가 코드를 비교해 충돌을 피하고 merge를 마무리
Pull Request를 통해 master 브랜치를 업데이트한다면, 각 개발자 컴퓨터의 로컬 repository와 다른 내용을 가지므로, 최신화된 코드를 반영해야함
git pull
명령어를 통해 remote의 최신화된 코드를 내 로컬 repo에 반영git pull origin master
기존 origin
이라는 이름으로 GitHub remote repo 링크에 이름을 붙여졌으므로, 그대로 활용함