[패스트캠퍼스 FE MGS 3기] - 3일차
오늘 배운 내용
협업을 위한 Git 활용법
Git licenseGit ignoreGit 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 flowgitlab 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:aliasfor prettygit loggit 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.)


