[TIL #1] git clone& Branch 연습
git에서 작업하고 변경사항이 발생했을 때 전체 변경사항 중 내가 commit하고 싶은 작업물만 Staging Area에 덜고 git add
로 Staging Area에 넣은 모든 파일을 커밋한다. git commit
을 하여 스냅샷을 찍는다.
git clone & Branch practice
Spiderman-practice
연습 내용
- 1단계: Spiderman.md를 생성하고 배역을 배우별로 브랜치를 생성
- 2단계: 완결된 브랜치는 master 브랜치로 merge.
브랜치 이름 : TobeyMaguire
AndrewGarfield
Tom Holland
git clone 방식
github에서 먼저 remote repository를 생성하고 local로 클론하는 top-down 방식
1. github에서 new repository를 생성한다
2. 생성한 repository의 code를 복사
HTTPS로 선택된 링크를 복사한다.
3. 터미널에서 git clone
- git clone 실행 후에,
ls
명령어로 디렉토리가 생성되었는지 확인 cd Spiderman-practice/
로 해당 폴더에 들어가기- 스파이더맨 폴더에서
ls
해보면 깃허브에서 레퍼지토리 생성 당시 체크한 라이센스 파일과 README.md 파일이 있을 것임 touch
명령어로 spiderman.md 생성
4. 배우별로 git branch 생성
git branch {브랜치명}
으로 브랜치를 생성할 수 있다.
5. git branch 이동하여 vi작성하고 add -> commit 까지
- 먼저, 1세대 스파이더맨인 토비 브랜치로 이동
git switch TobeyMaguire
vi spiderman.md
로 vim 창을 열고 insert 모드에서 아래 포맷대로 필모그래피 작성하고 저장 후 나가기(ESC - :wq)
# {Movie Name}
- Year:
- Name:
git add spiderman.md
git commit
- 작업 성격에 맞게 prefix 선택
** Commit Convention
- 커밋 제목은 50자 이내로 요약하여 작성한다
- 제목과 내용사이 한 칸
- prefix를 사용하여 한 눈에 커밋의 용도를 알기 쉽게 한다.
feat: features
docs: documentations
conf: configurations
test: test
fix: bug-fix
refactor: refactoring
ci: Continuous Integration
build: Build
perf: Performance
7. 저장한 뒤 main 브랜치에 `merge`(병합) 시켜준다.
1) main으로 브랜치 변경해준 뒤 `git merge AndrewGarfield` 하면 된다.
*참고: 머지 취소는 git merge --abort
2) merge할 때 충돌이 난다면 vi 창 열어서 <<< >>> 이렇게 된 부분들, 불필요한 내용들 수기로 수정해준 뒤 git add, commit 하면 된다.
8. 나는 merge된 브랜치는 삭제했다.
git branch -d {브랜치명}
위 방법을 남은 두 배우도 동일하게 하여 merge까지
반복 한다.
9. main 브랜치에서 git push origin main
해서 remote로 push 해준다.
🤔 궁금한 점
git push -u origin {branchname} 하면 브랜치 별로 push 가능하다. 그런데 메인으로 다 머지시킨 후 Main브랜치만 push 하는 것과 브랜치 별로 push하는 것 중 어떤 방법이 맞는걸까?..
🤨 회고
브랜치 명령으로 연습하니까 브랜치 이동, 삭제 등 번거롭다. git flow를 연습한 뒤 git flow전략으로 다시 연습해보자.
Author And Source
이 문제에 관하여([TIL #1] git clone& Branch 연습), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yejine2/git-clone-Branch-연습저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)