목차
- git의 개념
- git과 github와의 차이
- git init, add, status, commit, log, push 명령어 사용
- github 레포지토리 생성하기
왜 코드도 버전 관리를 해야할까?
- 수정할 떄마다 파일을 새로 만들면 관리가 힘들다
- 언제든 이전 버전의 코드로 돌아갈 수 있다
- 누가 코드를 작성했는지 확인할 수 있다
- 한 프로젝트를 두고 여러 개발자들이 협업할 수 있다
git vs. github
git 이란?
- git: version control system(vcs), 프로젝트의 버전 관리를 도와주는 시스템
- version: 어떤 프로그램을 수정, 개선하여 완성한 것, 이전과의 변화를 구분하는 표시
- 수정사항이 있을 때마다 새로운 파일을 생성하는 대신, 하나의 파일에서 변화 이력을 기록으로 남기는 방식이 효율적임
github 란?
- git을 사용한 프로젝트들의 저장소
- git을 이용해 버전관리를 한 프로젝트들을 관리하게 해주는 호스팅 서비스
- 개발자들의 소셜 네트워크
기본적인 명령어
git init
- git 저장소 생성 / 버전 관리를 위한 정보 생성
- init: 초기화
- 폴더에서 git 명령어를 사용할 수 있게 최초 세팅하는 명령어
- 버전 관리를 하고 싶은 디렉토리에서 해당 명령어 입력
- 명령어:
git init
git status
- git 상태 확인
- 디렉토리에서 일어나고 있는 상태를 확인할 수 있는 명령어
- 명령어:
git status
git add
- 파일 수정 이력을 기록하기 위한 준비, 기록 이전의 중간 단계
- 수정한 파일의 이력을 남길 준비를 하는 명령어
- ex. 쇼핑몰에서 구매 전에 장바구니를 이용하는 것
- 명령어:
// 특정 파일만 이력을 남기고 싶을 때:
git add [파일 이름]
// 변경된 파일 전체의 이력을 남기고 싶을 때:
git add .
git commit
- 파일을 수정한 이력을 기록하는 것
- 명령어:
// 한 줄로 커밋 메세지를 남기고 싶을 때:
git commit -m "커밋 메세지"
// 여러 줄의 커밋 메세지를 남기고 싶을 때:
git commit 입력 -> 커밋 메세지 입력
git log
- 남겨진 commit 이력을 확인할 때 사용
- 명령어:
git log
git push
- 작성한 코드를 원격 저장소(github)에 업로드
- 명령어:
git push origin [브랜치 이름]
Linux & git 명령어
- 특정 폴더로 이동: cd 폴더명
- 현재 경로 확인: pwd
- 폴더 만들기: mkdir 폴더명
- 파일 만들기: touch 파일명
- 폴더 내 파일 확인: ls
- 폴더 내 숨겨진 파일까지 확인: ls -a 혹은 ls -al
- 파일 수정: vi 파일명
-> i 를 입력하여 수정 모드 시작
-> esc 눌러서 insert 모드 나가기 - 저장하고 나가기: :wq
- git log에서 나가기: q
- 연결하기: git remote
- 현재 브랜치 확인: git branch -> 나가기: q
(실습) git과 github 연결하기
git remote add origin https://github.com/jangjia01234/test.git
-> git remote --v 해서 잘 되었는지 확인
git push -u origin main (혹은 master)
-> 깃허브 레포지토리에서 잘 push 되었는지 확인
세션 2: Webstagram Github Kickoff
목차
- git clone 명령어로 기존 프로젝트에 이어서 작업하기
- git branch, checkout, pull, merge 명령어로 기능별 독립된 작업 진행
- PR 메시지와 라벨 등을 통해 깃허브에서 다른 사용자와 의사소통하기
명령어
- git clone
- 기존 레포지토리를 복제해서 내 로컬(컴퓨터)로 가져오기
- 명령어: git clone [레포지토리 주소]
- git branch
- 독립적으로 개발 가능한 공간을 생성하는 명령어
- 명령어: git branch [브랜치 이름]
- git checkout
- Linux의 cd와 유사한 명령어로, 다른 브랜치로 이동할 떄 사용
- ⚠️ 브랜치 생성 후 반드시 새로운 브랜치로 이동하여 작업해야 함
- 명령어: git checkout [브랜치 이름]
- git pull
- 깃허브에 있는 특정 브랜치의 코드를 로컬로 가져올 떄 사용
- clone 과 pull 은 가져오는 대상이 다르다
- clone 은 레포지토리 전체의 코드를 가져옴, 내 컴퓨터에 해당 프로젝트의 코드가 없어서 전체를 가져올 때 사용
- pull 은 특정 브랜치에 있는 코드를 가져옴, 내 컴퓨터에 해당 프로젝트는 있지만, 그 중에서 특정 코드만 가져올 때 사용
- 명령어: git pull origin [브랜치 이름]
- git merge
- 로컬에서 현재 브랜치의 코드와 특정 브랜치의 코드를 합칠 때 사용
- 특정 브랜치 코드 -> 현재 브랜치 코드 방향으로 병함됨
- 명령어: git merge [브랜치 이름]
Westagram 실습
- westagram-frontend 레포지토리 메인 우상단의 초록색 code 버튼 클릭 -> HTTPS 하단의 주소 복사
- git clone [복사한 주소]
- 터미널에서 현재 브랜치 확인 (나갈 때는 q 입력)
- git branch
- 새로운 브랜치 만들기
- git branch [새 브랜치 이름]
- 새로 생성한 브랜치로 이동
- git checkout [이동하고자 하는 브랜치 이름]
- 파일 수정 후 아래 순서대로 진행
- git add . git status git commit -m "커밋 메세지" git log git push origin [현재 브랜치 이름]
- [참고] 커밋 컨벤션 예시
- 새로 추가한 내용이 있을 때:
- ADD : [추가한 사항]
- 기존 파일을 수정했을 때:
MODIFY : [수정한 사항]
- pull request(PR) 보내기
- github 에서 create & pull request 버튼 클릭
- pull request, 줄여서 PR 작성
- 변경된 코드를 main branch에 병합하기 전에 확인하는 과정
- 코드 리뷰 및 서비스의 완성도에 영향을 주므로 PR을 잘 작성하는 것이 중요함
- PR 템플릿에 맞춰 pull request 문서 작성
- 우측 Label에서 상황에 맞는 라벨 선택
- 위 과정 완료 후 Create pull request 클릭
- git pull 명령어
- mater 브랜치에 변경사항이 있을 때 최신 버전의 코드를 받을 수 있는 명령어
- master 브랜치로 전환
git checkout master
- git pull 로 최신 버전 적용
git pull origin master
- 내 branch로 돌아오기
git checkout feature/43-jiajang
- git merge로 master 브랜치와 내 브랜치 합치기
git merge [가져오고자 하는 브랜치명] git merge master
과제 리뷰
복습
- 기존 레포를 clone 해오면 이미 git init이 되어있기 때문에 따로 할 필요가 없다 -> 그래서 내가 여태까지 git init을 안했구나!
- git push origin [브랜치 이름] -> origin [브랜치 이름] 은 긴 [브랜치 주소] 를 매번 작성할 필요 없이 가져올 수 있게 함
- master 브랜치로 전환
git checkout master- git pull 로 최신 버전 적용
git pull origin master- 내 branch로 돌아오기
git checkout feature/43-jiajang- git merge로 master 브랜치와 내 브랜치 합치기
git merge [가져오고자 하는 브랜치명] git merge master
[참고] 플로우 정리
'Study > Wecode' 카테고리의 다른 글
[회고 📓] 부트캠프 2주차 🫂 든든한 동지를 얻다! (0) | 2023.03.01 |
---|---|
[회고 📓] 부트캠프 1주차 🐥 나.. 잘하고 있는걸까? (3) | 2023.02.19 |
[JS] 바닐라 JS로 게임 🎮 만들기 (리액트 잠시 안녕.. 😹) (0) | 2023.02.07 |
[Session] 웹 서비스, 어떻게 발전되어 왔을까? (2) | 2023.01.04 |
[HTML] 마법의 ChatGPT님🐚 시맨틱 웹이 뭔가요? (0) | 2023.01.02 |