프로젝트 시작시 팀장, 팀원이 해야할 git 관리
팀장
1. 프로젝트세팅
2. 팀장이 자신의깃헙 콜라보 초대(팀원들)
팀원
1. 팀장 깃헙 git clone
2. branch생성
ex) a기능을 만든다 a-topic
checkout 해서 a-topic브랜치로 이동
3. a기능 완료
4. a-topic push
5. a --PR요청--> master
6. 형상을 맞춘다.
7. squalth merge
git pull -> 코드 다운로드 = 다운로드 + 병합(merge)
한번도 작업한적이 없어서 git clone
작업한적 있으면 git pull을 사용해서 데이터 동기화
____________________________________________________________________________________
상황
학원에서 작업중인 netflix와 집에서 작업중인 netflix_home 2명이 작업중
________________________________________________________________________________________________
1. netflix가 환경세팅.txt / a기능완료.txt를 만들었음
2. netflix_home이 pull해서 다운받기
- git init
- git add.
- git remote add origin + netflix주소
- git pull origin master
pull = fatch + merge 기능을 한다.
git 주소 변경 : gir remote set-url + 주소
3. netflix_home에서 b파일 생성
netflix_home폴더 생성후 git bash실행
touch b기능완료.txt
touch - 빈파일 생성
ls : 리스트 보기
리스트를 보면 b기능완료.txt가 만들어진것을 확인할수 있다.
vi모드 사용
vi 파일
기본모드 - 에디터모드
글자가 적히지 않음
i입력 - 글쓰기 모드(insert모드)로바뀜
insert 모드로 변경해서 b기능완료.txt에 "완"이라고 글 작성
esc입력 -> insert모드에서 빠져나가기(다시 에디터 모드로 변경)
드라이버 모드로 돌아가기
shift+ : 드라이브 모드
shift : wq
wq : 저장하고 종료
cat - 텍스트 파일(File)의 내용을 화면에 출력
에디터 모드에서 적은 "완"을 확인할수 있다.
b기능완료.txt를 git에 push
netflix_home폴더는 b기능완료까지 저장되었다.
netflix가 c기능을 추가하고 push해보기
-> c기능을 추가하고 push를 하면 형상이 다르기때문에 거절!!!
-->현재 master에는 a기능+b기능이 있고, c기능에는 a와b기능이 없으므로 형상을 맞춰줘야함(강제push 금지!!!)
pull로 merge해보기
git pull origin master
git log 로그 확인
전체 push로그와 merge한것까지 확인할 수 있다.
git push origin master를 해준다.
- 이제 오류가 발생하지 않을것이다.
새로운환경에서 시작하기전에 pull을 하고
최종적으로 올릴때 pull을한다.
2번 pull을 한다.
netflix_home에 형상 맞추기
- netflix_home에는 아직 a,b기능만 있는 상태이다.
git pull origin master 입력
git log로 확인해보면
동기화 완료
충돌시켜보기
netflix_Home폴더 자체에 d기능.txt생성
master에 push
-> 현재 형상이 같은 상태에서 d를 추가한것이니까 netflix_home과 git의 netflix로그가 같아짐
다시 netflix에 d기능.txt만들기
d.기능.txt 파일안의 내용을 수정해본다.
- 현재 같은 d.txt파일을 2명이서 수정중인 상황
push해보기
이렇게하면 큰일.. 오류 발생
- netflix와 netflix_home에서 push한 형상이 달라서 거부당합 (현재 git에 d기능이 있기 때문)
형상을 맞추기 위해 pull을 해본다.
CONFLICT 충돌발생 -> pull해서 같은 파일을 합치는 중 어디서 충돌이 났다고 알려줌!
해결방법
코드를 확인해보면
========기준으로 위에것을 사용할지 아래것을 사용할지 선택을 해야한다.
아래의 파란박스
1을 제외한 빨간박스를 삭제해주고 push를 해준다(1은 빨간박스 잘못넣은것이다...)
최종 git 결과확인을해보면 commit이 잘 된것을 확인할수있다.
'git' 카테고리의 다른 글
git rebase, squash, drop, reword (0) | 2022.10.03 |
---|---|
git branch 전략 (0) | 2022.09.29 |
github - branch, clone(복제) (0) | 2022.09.02 |
git hub 파일 올리기 (0) | 2022.08.29 |
git 설치 (0) | 2022.08.25 |