협업 시나리오

컴플리트 시나리오
첫번째 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 |
|---|