본문 바로가기

git hub

git hub day02(깃허브 사용방법2)

728x90

협업 시나리오

컴플리트 시나리오

첫번째 collabolator방법

1.프로젝트 들어오면 셋팅에 들어감

2.표시한 콜라보레이터를 통해 프로젝트를 다른사람들에게 공유할수있다

3. 클론을 이용해 파일을 가져옴(공유자와 권한이 같아서 푸쉬,풀 사용가능)

======================

두번째 pull request방법

pull request란 내가 복사해온 코드를 원본이 되는 원격저장소에 반영해 달라는 요청이다

-> 1.메인 원격저장소에서 fork하기

-> 2.fork해온 곳에서 clone하기(중요)

-> 3.브렌치생성후 작성하고자 하는 코드(add , commit)작성

-> 4.브렌치에 있는 내용을 origin으로 push해라 (git push origin 브렌치명)

-> 5.fork계정으로 들어가면 풀리퀘스트를 날릴 수 있다.

-> 6.본계정(관리자)는 풀리퀘스트를 확인하고 merge를 받아준다

-> 프로젝트완료까지 4번부터 반복한다.

1.공유할 프로젝트가 있는 주소로 이동후 포크를 클릭

2.포크하면 프로젝트가 내 계정에 저장됨 - 프로젝트 주소를 확인 가능하니 클론으로 가져옴

 

3.클론으로 가져온 이후엔 파일 수정,추가등의 활동이 가능

 

4.파일 푸쉬로 올려준뒤 빨간 원으로 체크 된 풀 리퀘스트 버튼을 눌러줌 메인원격저장소에 파일 전송완료

5. 메인원격 저장소에서 파일을 확인후 파일을 합쳐줄수있음

 

6.필요없는 브렌치를 삭제

7. 이후에 새롭게 파일 수정, 추가 할게 있으면 위 방법을 4번부터 계속 반복한다

==============================

위 방법이 끝나면 프로젝트와 개인 계정에 업데이트작업

관리자의 git이 업데이트 되어갈때 중간중간, 부계정의 git도 업데이트 시켜준다

내 프로젝트 상태를 원본과 똑같이 유지하기 위해 사용함

pull request

-> remote를 추가한다 (git remote add collabo 주소)

 

-> pull을 당긴다 (git pull collabo master)(콜라보의 마스터 브랜치를 당긴다)

1. 자동으로 merge창이 열리는 경우

-> merge창이 자동으로 열리기도 한다(i로 수정하고 :q로 종료) - merge완료

 

2. pull이 거절되어 가져오지 못하는 경우

-> 2. FETCH_HEAD로 진입(git checkout FETCH_HEAD)

-> 새로운 브렌치로 따준다 (git switch -c me)

-> 파일을 조금 수정하고 add commit한다

-> master로 이동해서 merge한다 (git merge me)

-> 브렌치를 지워준다 (git branch -D 브렌치명)

 

1.메인 원격저장소에 주소코드를 가져온다

2.내 파일에 원격저장소에 저장된 프로젝트를 똑같이 맞춰주고 

3.내 원격저장소에 프로젝트도 메인 원격저장소와 똑같이 맞춰주면 완성

4.마지막으로 메인원격저장소에 보낼때 사용한 브렌치는 삭제시켜줌

===================================================

stash 시나리오

커밋없이 코드를 작성하다가, 원격에 새로운 버전이 올라온 경우?? 어떻게 해야하는가?????

정답: 현재 나의 로컬저장소 코드를 커밋한다. GIT PULL을 당겨서 가져온다

 

stash를 사용하는 경우 로컬저장소 커밋을 피할 수 있다

 

로컬 저장소에서 하던 일 잠시 되돌리기

- git stash 란?아직 마무리하지 않은 작업을 안전하게 임시 저장할 수 있도록 하는 명령어이다.

- 불필요한 commit을 피할 수 있다.

- 이를 통해 아직 완료하지 않은 일을 commit하지 않고 나중에 다시 꺼내 마무리할 수 있다.

- pull 명령시 comflict가 날 때 유용하게 사용하는 명령.

 

1. 하던 작업 임시로 되돌리기

$ git stash

 

2. stash목록 확인하기

$ git stash list

 

3. stash 적용하기(하던 작업 다시 가져오기)

$ git stash apply [stash이름]

 

4. stash 제거하기

$ git stash drop [stash이름]

 

5. stash 전부 제거하기

$ git stash clear.

 

사용예시

 

스테이시 저장하고 나면 저장된 파일 켜지는데 내용 확인하여 저장후 다시 푸쉬로 원격저장소에 보내줌

===================================

rebase 시나리오

 

로컬 저장소에서 하던 일 잠시 되돌리기

- git rebase 란?

- 이력이 맞춰지지 않은 상태로 merge시 새로운 branch를 생성한다.

- 마지막 나눠지기 전 이력을 기준으로 base를 맞추고 합칠 브랜치 이력을 적용한다.

 

1. 브렌치를 base로 맞추고 log를 선형으로 맞춘다.

$ git rebase 브렌치명.

 

깃 교육자료 그림설명 참조

 

rebase실습 비교

1. git_rebase로컬저장소 생성

2. master 1 commit

3. git branch A (A의 커밋생성 1)

4. git branch B (B의 커밋생성 1, 2)

-------------------------폴더복사-----------------------

5. git checkout master

6. git merge A

6. git merge B vs (git rebase B)

 

log를 그래프로 보는법 git log –graph –oneline.

 

브렌치 만든 순서를 캡처해놓음

리베이스 복사하여 3개를 만들고 다시 리베이스에서 작업, merge와 리베이스의 차이 비교

=================================

(1)merge방식

====================

(2)rebase방식.

 

 

위에 작성된 깃 작업이 위 그림과 같다

====================================================

 

rebase실습(로그맞추기)

1. git_rebase로컬저장소 생성

2. master 1 commit

3. git branch A (A의 커밋생성 1)

4. git branch B (B의 커밋생성 1, 2)

--------------------폴더복사-----------------

5. git checkout master

6. git merge A

7. git checkout B

6. git rebase master (master를 베이스로 맞추고 B합침)

7. git checkout master

8. git merge B (같은 이력으로 합쳐짐)

 

아래사진은 위 목록의 5번부터 진행함

 

결과

master를 베이스로 두고 합치는것으로 함

 

 

'git hub' 카테고리의 다른 글

git hub day01(깃허브 사용방법1)  (0) 2022.02.07