[패스트캠퍼스 FE MGS 3기] - 3일차
오늘 배운 내용
협업을 위한 Git 활용법
Git license
Git ignore
Git Branch
branching models
-git flow
첫 팀 프로젝트
git을 활용한 협업
기타
명령어 및 꿀팁들...
협업을 위한 Git 활용법
벌써 몇일째 git
에 대해서 배우는지 모르겠다....
나는 그래도 git
을 조금 다뤄본 경험이 있어서
"아 이게 이래서 쓰였던 거구나" 하면서 재밌게 들었지만,
아마 처음 배우는 수강생분들은 조금 힘들것 같았다.
html
이나 css
처럼 한눈에 보이는 학습이 아니라서,
강의를 듣는 내내 크게 와닿지는 않았던 것 같다.
하지만 마지막에 팀원들의 git commit
이 나의 branch
에 무사히 merge
되었을때
모두 환호성을 지를 만큼 짜릿했다! 아 이게 개발자지~~
그리고 솔직히 git
을 배우는 이유 자체가 원활한 협업을 위해서 이기도 하니,
배우려면 오늘처럼 deep 하게 배우는 편이 좋을 것 같다. (진짜 실무자급으로 배운것 같다.)
그럼 시작하겠다~~!
Git
에 처음 들어가 레포지토리를 생성하려고 하면,
이런 창이 뜰 것이다.
✔️Repository name
여기에는 이름 쓰고...✔️
public private
이거는 공개 비공개 설정일 테고...✔️
Add a README file
이거는 설명하는README.md
파일 추가....❓
Add.gitignore
는 뜬금없이 뭐지..? 뭘 무시해...?❓
Choose a license
는 또 뭐야...사업자 등록증인가
이 두가지를 한번 알아보자...!
❓ Git ignore
git
에 올려지지 않고 무시되는 파일들을 설정함.
node modules
는git
에 연결할 필요 없음.
-> 용량도 많고 나중에 라이브러리 이름으로 자동으로 받아짐keyfile.pem
: 특히 조심. 크롤링 해서 해커들이 가져가서,
사용자aws
계정에 접속해서 비트코인 광산 노예로 만듬...ㄷㄷ- https://www.toptal.com/developers/gitignore
이 사이트에 사용하려는 언어 별로ignore
해야 하는 템플릿들이 있음 참고!
예전에 branch
를 바꾸려다가 잘못 설정해서 node modules
라는 폴더 전체를 옮겨버린 적이 있었는데,
무시무시한 렉이 계속 걸렸던 적이 있어서 이 부분에 매우 공감이 되었다...
이게 원래 무시해야 하는 폴더였구나...!
❓ Git license
왠만하면repository
를 만들때MIT License
를 체크 해야 한다고 하셨다.
Git Branch
이제 본격적인 협업을 위한 branch
의 명령어들을 적어보겠다.
일단
branch
란?
-> 분기점을 생성하여 독립적으로 코드를 변경할 수 있도록 도와주는 모델이다.
git switch ‘branch abc’
:branch abc
로branch
전환
- 원래는
checkout
였는데commit
이랑 명령어가 겹처서 바뀌었다고 한다.git merge ‘branch abc’
:현재 branch
와branch abc
를 합친다.git branch -D ‘branch abc’
:branch abc
를 삭제.
branch
의lifecycle
이 다 했을 때는 바로바로 삭제하기merge conflict
발생 시 :
- 어떤 파일에서 발생 했는지 확인
- 그 파일을
vi
로 열어서 편집
- 만약에 충돌 수정 안하고 바로 나갔을 때 (fatal: Exiting because of an unresolved conflict.)
- 다시 수정
ls -al
로 swap 파일 찾아서 삭제git add
하기-u
: upstream set (remote
에 없던 새로운branch
에push
할때 사용해야함)
branching models
실제로 기업에서 쓰이는 여러 branching model 들을 설명 해주셨다.
github flow
gitlab flow
- ✔️
git flow
등이 있는데, 이중에서 가장 많이 쓰이는
git flow
에 대해서 설명 하겠다.
git flow
- 크게
main
과develop
두개로 나뉨.(hotfix)
-master
-(release)
-develop
-feature
장점
:단점
: 복잡함설치
: https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html- 명령어 모음
git flow init
: 시작 & 기본 설정git flow feature finish 'branch A'
:main
으로 이동,merge
후branch A
삭제git flow release start v0.1
:
- 마이너 업데이트 : 뒷 번호를 올림. 이전 버전에서 업그레이드
메이저 업데이트 : 앞 번호를 올림. 새로운 기능 추가, 또는 아예 드랍 등 (대규모 업데이트)git flow release finish v0.1
:git tag
: tag 확인
git push --tags
: tag push
첫 팀 프로젝트
git을 활용한 협업
이제 이 도구들을 이용해서 우리팀이 어떻게 commit을 하고 merge를 했는지,
간략하게 설명해 보려고 한다. 근데 전혀 간략하지 않음
- 팀장이
github
에repository
생성 후directory
에cloning
함.git flow init
을 통해develop branch
생성.- 이제 팀원들은 팀장의
github
링크에 들어가repository
를fork
함.- 각자의 'directory'에
repository
를cloning
함.- 마찬가지로
git flow init
을 통해 각자의 폴더에develop branch
생성.develop branch
에 각자의 파일 생성 후git commit
후git push
- 팀장의
github
의pullrequest
에 들어가request
를 보냄- 팀장은 확인 후 반려하거나
request
수락merge
를 누르고 팀장의CLI
에서git pull origin develop
- 이제 팀장의 저장소에 팀원들의 업데이트 된 파일을 모두 땡겨옴
git remote add upstream '팀장의 git 주소'
로 팀원들이 팀장의 업데이트 된 저장소를 불러옴!
기타
- 코딩 테스트 공부 : leetcode, 해커링크, 백준
파일 이름
을 바꾸면git
은 삭제 되었다고 인식함.
→git mv
로 바꾸어야 파일명 변경을 인식함.git restore ‘파일 이름’
: 최신commit
의 상태로 되돌아감. (commit
단위)git commit --amend
: commit 내용 수정하기git lg
:alias
for prettygit log
git reset ‘파일 이름’
:add
되돌리기 (unstaging
)git revert ‘파일 이름’
:
Author And Source
이 문제에 관하여([패스트캠퍼스 FE MGS 3기] - 3일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ggyu777/패스트캠퍼스-FE-MGS-3기-3일차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)