촬리의늘솔길

Git 사용법2 본문

✍~2022/git

Git 사용법2

리촬리 2021. 7. 6. 17:41

순서 생각해보기. 저번꺼 다까먹음


브랜치Branch(나뭇가지, 분기된 흐름이라는 뜻을가짐)

= 특정 커밋을 가리키는 포인터

 

하나의 프로젝트에서 서로 다른 개발흐름을 병렬적으로 가져가기위해 사용함.

 

하나이상의 개발흐름 생성하기 위해서 사용

최신커밋을 가리키는 포인터이다.

 

git log로 확인해보자

 

가장 최근 커밋에 표기된 master는 브랜치를 의미하는것이다.

그림으로 나타냄

 

헤드는 브랜치를 통해서 특정커밋을 가리키게됨

head가 마스터 브랜치를 통해서 다섯번째 커밋을 가리키는거임

이건 나한테 안보임

git lab서버에 존재하는 마스터 브랜치를 의미함

컴퓨터와 깃랩서버 마스터 브랜치가 둘다 똑같이 최신커밋을 가리키고 있음을 의미

이전에 git push로 두 프로젝트를 동기화 해줬기 때문에 그런것임

 


<저번에 못했던거 해결>

정확한 오류 원인은 알 수 없으나, 다른 팀원분이 작성하신것과 겹쳐서 그런거라고 추정

무턱대고 git push했기에 오류 난것으로 생각됨

1. git pull로 가져오기 시도

 

실패함. 구글링해봄

2. git branch 로 현재의 branch확인

branch는 잘 있음 따로 설정안해도되는듯

3. git branch --set-upstream-to=origin/master master

입력해봄

 

무슨..영어가 뜨는데 된것같지는 않았음 실패

4. git pull다시 끌어오기 시도. 

실패

오류 그대로 구글링했음 (이래야 해결법 잘 나오는듯)

5. git pull origin master --allow-unrelated-histories 

를 쳐줬더니 뭔가 되는것같음

이 명령 옵션은 이미 존재하는 두 프로젝트의 기록(history)을 저장하는 드문 상황에 사용된다고 한다.

즉, git에서는 서로 관련 기록이 없는 이질적인 두 프로젝트를 병합할 때 기본적으로 거부하는데, 이것을 허용해 주는 것이라고 함.

우리 깃랩 링크가 떴음. 희망이 보임

6. 파일 병합 오류라고 해서 

<< 꺽쇠와

==

를 지워주고 남길 코드만 골랐음 

가져온 코드와 이미 있던 코드중 결정해서 코드를 어찌저찌 바꿨음

그 후 

7. git add BasicCar.js

8. git commit -m "커밋메시지작성"

9.git log로 확인해보고 git lab사이트 새로고침 해보니 변경완료

어렵군..


다시 이어서 브랜치 공부

나두보인당!!

두 프로젝트 동기화해서그런거임

 

새브랜치 생성해보기

1. git branch 생성할브랜치이름

ex_ git branch develop

 

2. git log로 확인

 

 

master에는 완성된 커밋들 둘거고,

개발하면서 만들어진 커밋은 develop에 둘거임

 

- head를 develop에 옮기기

git checkout 원하는브랜치이름

 

 

결과

우~왕 옮겨짐

커밋하면 이제 매번 develop이가리킴

 

 

README파일 변경 후 저장(이거 안해서 자꾸 오류남 까먹지 말기) -> add -> 커밋등록

 

- 브랜치 생성, 헤드를 생성한 브랜치로 옮기기의 과정 기억하기

 


총 2개의 팀이 각각 작업한다고 가정하고 해보기

1. git branch feature-attack (새 브랜치 생성)

2. git branch feature-defend (새브랜치 생성)

3. 1로 브랜치전환 

git checkout feature-attack

4. 파일 내용 변경 ->add->git commit -m "Add attack method"

5. 2로 브랜치전환

4에서 추가했던 attack메소드가 없음. 이전의 것을 가리키고 있기때문에

 

6. log확인해보기

 

feature-attack이 보이지않음

 

7.보이지않는 브랜치까지확인

git log --all --graph

 

결과

 

이쁘당 색깔

8. feature에서 했던거를 develop에 합쳐보기!

- 일단 브랜치 이동

 

'

을 합칠때 이 명령어 사용

결과를 보면 합쳐짐

 

Fast-Forward Merge:새로운 커밋이 만들어지지 않고, 그냥 쭉 당겨져 오는 것

이전꺼에서 최신꺼로~

 

9. 새로운 커밋이 생기는 머지

git merge feature-defend

 

d

오류~!

충돌상황!

 

윗부분 : 헤드가 디벨롭을 통해 가리키고있던 커밋의 내용

아랫부분 :머지를 당하고있는 feature -defend내용이 포함됨

 

같은 라인에 서로 다른 코드를 썼음.

그래서 머지할때 attack과 defend중 어떤걸 사용해야할지 모르겠다고 뜨는거

그래서 코드 아까처럼 꺽쇠지우고 원하는대로 수정

add > 커밋

 

 

머지에는 크게 두가지 종류가있다.

1.  동일 커밋 로그 직선 상에 있던 기준 브랜치의 위치로 죽 당겨지기만 하는 패스트포워드 머지

2. 흐름이 중간에 갈라진경우에 머지를 하면 아예 새로운 머지를 만들어내는..서로 다른 커밋 로그 직선 상에 있어서 아예 새로운 머지 커밋을 생성하는 머지

 


 

이렇게 하면 그다음부터 git push/pull만 해도 알아서 깃랩서버의 마스터 브랜치 대상으로 작업수행하는것

 

업로드해보기

git push -u origin develop

 

성공!

728x90

'✍~2022 > git' 카테고리의 다른 글

gitlab3  (0) 2021.07.07
Git사용법  (0) 2021.06.26