git을 사용하는 이유
1.변경취소-실수했을때 구버전의 작업파일을 복구하여 이전단계로 돌아갈 수 있다.
2.모든 변경에 대한 완벽한 이력- 구버전의 프로젝트를 확인해 그 당시 파일의 상태를 정확히 볼 수 있다.
3.변경한 이유 기록- 왜 변경했는지 기억할 수 없을때 git의 commit message를 이용해 변경한 이유를 추후에도 참조 가능
4.변경에 대한 확신- 잘되지 않으면 이전버전 복귀가능
5.여러갈래의 히스토리- 다른기능을 독립적으로 실험해보기 위해 별도의 branch를 생성가능 성공하면 변경내용을 master branch로 병합하고 잘 동작하지 않으면 삭제
6.충동해결능력- git을 이용하여 여러 사람들이 동시에 같은 파일을 작업할 수 있다. 대게 자동으로 변경사항을 병합할 수 있다. 그렇지 못할 경우 충돌이 무엇인지 알려주고 이를 해결하기 쉽게 해줌
7.독립된히스토리- 여러 사람들이 다른 branch에서 작업가능. 기능을 독립적으로 개발하고 완료되었을 때 기능을 병합할 수 있다.
8.기록요구-issues를 사용해 버그를 기록하거나 개발하고 싶응ㄴ 새로운 기능을 구체화 할 수 있다.
9.독립된 히스토리에 대한 협력-branch와 pull request를 이용해 다른 branch또는 기능에 협력할 수 있다.
10.진행중인 작업 검토- pull request 목록을 통해 현재 무슨 작업이 진행되는지 볼 수 있다. 그리고 특정 pull request를 클릭하여 최근의 변경 내용과 변경ㅇ 관한 모든 논의 내용을 볼 수 있다.
11.팀의 작업 진척상황 확인- pulse를 훑어보거나 commit history를 살펴보면 팀의 진척상황을 알 수 있다.
용어
commit
commit message
branch
master branch
feature
release branch
merge
주요 git 명령어
clone [git, url] 현재 파일 위치에 원격 깃 프로젝트를 복사한다
init 현재 파일 위치에 로컬 저장소를 만든다
add [파일 위치] 주어진 파일, 폴더들을 깃 변경사항 인덱스로 적재한다.
status 현재 깃 상태를 보여준다
branch [브랜치 이름] 현재 브랜치에서 새로운 브랜치를 생성한다.
commit [-m 메세지] add로 등록한 깃 데이터를 커밋한다.
check out [-b 브런치 이름] 저장된 브런치로 이동한다
pull [저장소이름][브런치이름] 다른 브런치에 있는 내용을 로컬로 다운로드 받는다
push[저장소이름][브런치이름] 커밋 내용을 해당 브런치에 적용한다.
git 브랜치 전략
-여러 개발자가 하나의 저장소를 사용하는 환경에서 저장소를 효과적으로 활용하기 위한 work flow
브랜치 샹성에 규칙을 만들어서 협업을 유연하게 하는 방법론
정해진 것은 없으나 개발자들이 내부적으로 합의한 것.
echo "# 20230228" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/Lee-YunSup/20230228.git
git push -u origin main