본문 바로가기

git

git pull 예제

프로젝트 시작시 팀장, 팀원이 해야할 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해서 다운받기

  1. git init
  2. git add.
  3. git remote add origin + netflix주소
  4. 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