수업 5일차
첫 주의 마지막 수업날이다.
오늘은 한주간 배운 HTML,CSS가 아닌 새로운 git을 배운다고 했다. 협업을 위해 중요하다고 하니 잘배워 둬야겠다.
이론
- git
git : 효율적 협업, 복잡한 파일 대신 하나의 파일로 작업 가능
git 장점 : 가지 치기와 병합 가능, 가볍고 빠르다, 분산 작업 가능, 데이터 보장, 준비 영역, 오픈 소스
git init : git 저장소 생성
git add . : 새로운 파일 생성
git status : Staging area의 어떤 파일이 변경되었는지 등의 파일의 상태를 확인가능
git commit -m "Initial commit" : 준비 영역에 있는 파일들을 저장소에 반영
git commit --amend : 저장소 반영 내용 변경
git log : 저장소 반영 내역 확인
git log --grapg : commit간의 연결된 관계를 아스키 그래프로 출력한다.
git log -S : 코드에서 추가되거나 제거된 내용중 특정 텍스트가 포함 되어 있는지 검사
git reset : 준비상태에 있는 것을 준비 아닌상태로 옮김
Git Branch : 독립적으로 어떤 작업을 진행하기 위한 개념
메인 branch : 배포할 수 있는 수준의 안정적인 branch
토픽 branch : 기능 추가나 버그 수정과 같은 단위 작업을 위한 branch
Git checkout : branch를 전환하는데 사용할수 있고, 스냅샷을 넘나들때도 사용
Fast-forward : master 포워드에서 새로운것이 없는것
Git Merge : master branch로 병합
갈라지는 branch : 파일을 동시에 수정하는것
—graph : 갈라지는 branch 확인 가능
Merge conflict : merge한 branch에서 같은 파일을 변경 했을 때 충돌이 발생함
Git merge 충돌 방지 : master Branch의 변화를 지속적으로 가져와서 충돌이 발생하는 부분 제거
원격 저장소 : 인터넷이나 네트워크 어딘가에 있는 저장소
Git clone : 기존의 git repository를 복사
Git remote : 연결된 원격저장소 확인
Git pull : 원격 저장소에서 데이터 가져오기 + 병합(merge)
Git fetch : 원격 저장소에서 데이터 가져오기 (병합 별도)
Git push : 로컬 저장소에서 작업한 내용을 원격 저장소에 반영, 다른사람이 먼저 push한 상태에서는 push불가능, 다른사람이 작업한것을 merge 부터 해줘야함
실습
![](https://velog.velcdn.com/images/emong_96/post/03ce2ad8-8abb-425e-adae-29a768adc4bf/image.png)
project1 디렉토리 생성후 이동한뒤 저장소 생성
![](https://velog.velcdn.com/images/emong_96/post/24883912-7790-4389-84b7-76c6885b7cca/image.png)
병합간 충돌이 생겼을때 git checkout으로 선택해주고 merge시켜준다 서로를
![](https://velog.velcdn.com/images/emong_96/post/7717617e-3e8f-4a8d-a0f4-4cb3c50baded/image.png)
git log --graph로 서로가 같은 위치에 있는지 확인한 부분