용어 정리
Repo
Repository의 준말로 Git으로 관리되는 소프트웨어 프로젝트를 지칭
Master/Main
한 Repo에서 기본이 되는 메인 코드를 지칭
Branch
자신의 Repo에서 새로운 기능 개발등을 위해 Master 혹은 다른 Branch로부터 만든 코드 작업본을 지칭. 작업 후 나중에 원본 Branch와 다시 병합하려는 목적으로 만들어짐
Clone
다른 계정에 존재하는 repo로부터 새로운 local repository를 만드는 것
Commit (Check-in)
내가 만든 코드 변경을 Branch의 Local Repository에 반영하는 것
Pull
Master와 같은 Remote Repository로부터 마지막 Pull이후 변경된 것을 다시 가져오는 작업. 즉 Master(혹은 Branch)와 씽크하는 것을 지칭
Push
자기가 작업 중인 로컬 복사본 (Local Repository)에서 서버(Remote Repository)로 변경사항들을복사하는 것을 지칭
Merge
Pull이나 Push했을 경우 두 Branch(대부분 이 중 하나는 Master)간의 충돌(Conflict)을 해결하는 과정. 많은 경우 이는 자동으로 해결되나 몇몇 경우에는 손으로 직접 충돌을 해결해야 함
Mainline
github에서는 이전에 master라 불렀고 지금은 main이라 부르는 source of truth가 되는 특별한 branch
Branch
특정한 기능을 구현하기 위해 만들어진 mainline의 복사본. 구현과 테스트가 이뤄진 후에 main branch와 머지됨
[실습1] 처음부터 새로 repo를 만드는 과정
1. 코드 작성
hangman.py라는 파이썬 파일을 만들었다.
2. repo를 로컬에서 만들기
mkdir hangman_init #mkdir: 폴더 만들기
cd hangman_init #cd: 해당경로로 이동(change directory)
cp ../hangman.py # 부모 디렉토리에서 hangman.py 파일을 복사해서 현제 디렉토리에 만들기
notepad hangman.py #메모장에서 코드 확인하기
git init #repo를 로컬에서 만들기, 이때 main브렌치 이름이 master
git branch # repo의 이름을 확인하기
ls .git #.git이라는 안보이는 폴더 내부 보기
git log #git이 어떠한 일들을 했는지 보기
3. 변경한 파일 중 repo에 추가하고 싶은 것들을 선택
code README #VScode에서 새로운 파일 생성(저장: ctrl S, 창닫기: ctrl W)
git add hangman.py # hangman.py를 선택함
4. 선택한 파일들의 기능에 대한 설명과 함께 repo에 커밋 (로컬 repo)
git commit -m "(코드에 대한 간단한 설명)" hangman.py
git commit -m "initial commit" hangman.py
#파일 이름을 안쓰고 git commit -m만 하면 이전에 add한 파일 모두 커밋됨
Git Commit(커밋)이란?
1) 커밋은 관련있는 변경 파일들을 하나로 묶는데 사용
예) 버그를 고치는데 3가지 파일을 수정했다면 이를 묶어서 하나의 commit으로 묶는다
2) 이를 통해 나를 포함한 팀원들이 나중에 이 버그를 고치는데 어떤 파일들이 수정되었는지 파악 가능
그래서 commit을 관련된 파일을 묶어서 하고 메세지를 잘 적는 것이 중요
5. Github 자기 계정에 (비어있는) hangman repo 만들기
6. 로컬 repo의 remote repo(깃헙 서버의 리포) 위치를 지정
git remote add origin https://github.com/자기계정/hangman.git
7. 브랜치를 리모트(GitHub 서버쪽)으로 푸시 (먼저 로컬 브랜치 이름을 main으로 변경)
git init으로 repo를 만들면 메인브렌치 이름이 master로 설정되어 있기 때문에 로컬 repo를 리모트 repo로 push하기 전에 로컬 브랜치 이름을 main으로 변경해야 함
git branch -M main #이름 바꾸기 명령
git push -u origin main #지금 브랜치를 서버에 있는 main이라는 이름의 리모트 repo로 복사해라(양쪽의 이름이 맞아야 함), 한번 쓰면 다시 안써도됨
8. Github repo 확인
[실습2] 이미 만들어진 repo를 clone해서 사용하기
repo를 다른 디렉토리에 다운 받은 후 거기서 변경하기(clone 생성)
1. git clone으로 앞서 만든 repo를 다운로드
git clone https://github.com/[본인ID]/hangman.git
cd hangman # 이동
2. 작업용 브랜치 (“modify_greeting_message”) 만들기
git branch modify_greeting_message
# 중간중간에 git pull을 계속해줘야 함
3. 작업용 브랜치로 이동
git checkout modify_greeting_message
git checkout modify_greeting_message
4. 파일 수정 (hangman.py)
code hangman.py # vscode에서 파일 수정(ctrl s 누르면 저장)
5. 변경된 파일을 해당 브랜치로 커밋
#새로운 파일이라면 git add (파일이름) 하고 커밋
git commit -m "modified greeting message" hangman.py
# 이때 커밋할 파일이 여러개라면 따로 하는 것이 좋음
6. 브랜치를 리모트(GitHub 서버쪽)으로 푸시
git push -u origin modify_greeting_message
7. github.com에 가서 브랜치가 만들어졌는지 확인
8. 코드 수정 완료 후 github.com에서 Pull Request 수행
Merge 한 후에 branch는 삭제(main에 저장되어 있기 때문에 필요가 없어짐)
9. 로컬 repo에서 main으로 브랜치 변경 후 git pull 수행
git checkout main
git pull
'AI > 데이터 엔지니어링 데브코스' 카테고리의 다른 글
[5주차-2] SQL을 이용한 데이터 분석 - SQL 소개 (0) | 2023.05.14 |
---|---|
[5주차-1] SQL을 이용한 데이터 분석 - SQL과 데이터베이스 소개 (0) | 2023.05.14 |
[3주차-5] 장고를 활용한 API서버 만들기 - ReatedField, Testing (0) | 2023.05.01 |
[3주차-4] 장고를 활용한 API서버 만들기 - User 추가하기 (0) | 2023.05.01 |
[3주차-3] 장고를 활용한 API서버 만들기 - Class 기반의 views (0) | 2023.04.29 |