Git_인프런 04

5w31892p·2022년 11월 17일
0

Git

목록 보기
5/10

📜 Git

:: ✍ git 깃허브로 협업하기

  • 깃허브
    • 개발자들의 sns
    • 원격저장소호스팅서비스
    • 백업과, 협업을 위해 사용함
  • 원격저장소 만들기
    repository -> new -> 저장소이름 / 프로젝트설명 넣기
  • README
    프로젝트 설명서

:: 깃허브 소스트리 연동

  • ssh 사용
  • 두개 키(=암호) 생성
  • 공개키 개인키
  • 개인키는 남들이 내 파일을 봐도 못알아먹게 하는 암호화 기능

gitbash에서 key 생성

  1. ssh-keygen
  2. 경로확인 후 엔터
  3. 받아보기 직전 암호 필요하면 저고 아니면 엔터
  4. 암호 확인 똑같이 적거나 그냥 엔터
    • id_rsa 개인키
    • pub 공개키

gitbash에서 특정 파일 열어보기

cat 파일위치

위 방법으로 공개키 보고 복사 후 깃허브에 등록

github에 ssh key 등록

  • 깃허브에는 여러 ssh키 등록 가능
  • 설정 > ssh and gpg keys > new ssh key > 이름 정하고 복사한 공개키 복붙

소스트리 설정

  • 도구 > 옵션 > ssh 클라이언트 설정

소스트리에 깃허브 계정 연결

  • 리모트 > 계정추가

:: 원격저장소와의 네가지 상호작용

  • clone : 원격저장소 복제
  • push : 원격저장소에 밀어넣기 (업로드)
  • fetch : 원격저장소 일단 가져만 오기
  • pull : 원격저장소 가져와서 합치기 (변경사항 땡겨와서 로컬저장소와 합치는 것)

clone : 원격저장소 복제

  • 내 원격저장소에서 복제하는 것은 리모트에 해당 레파지토리 클론버튼 누르기

다른 사람의 원격저장소 복제해오기

  1. 코드 클릭 후 ssh복사
  2. 소스트리로 와서 상단 클론버튼 누르고 경로에 붙혀넣기
  3. 깃저장소입니다라고 떠야 정상
  4. 저런 문구가 뜨면 아래 저장될 장소와 이름이 뜸 (수정해도 되고 안해도 되고)
  5. 하단 클론 누르기
  6. 모든 히스토리가 모두 복제 됨
  7. 클론을 하게 되면 .git 숨김폴더까지 모두 받아오게 됨

원격저장소 브랜치 이름

  • main == master브랜치
  • origin == 원격저장소에 붙은 일종의 별명 (변경도 가능)
  • origin/HEAD == 원격저장소 origin의 HEAD (원격저장소의 해드)
  • origin/main == 원격저장소 origin의 main (원격저장소의 메인)

push : 원격저장소에 밀어넣기 (업로드)

  • 즉, 로컬에서의 변경사항 밀어넣기
  • 내가 소유한 원격저장소에만 push 가능함
  • 상단 push 클릭

다른방식의 push

  • 로컬에 있는 것을 바로 push
  • 이미 로컬에 쌓여있는 것을 상호작용할 폴더 만들어 push
  1. 깃허브에 레파지토리 만들기
  2. ssh 경로 복사
  3. 소스트리로 돌아와서 좌측상단 설정들어가서 origin적고 ssh경로 붙혀넣고 확인
  4. push 누르고 push할 것 체크

fetch : 원격저장소 일단 가져만 오기

  • 변경사항을 가져오되 병합하진 않는 방식
  • 협업 중 내가 한 작업에는 영향을 받고싶지 않은데 다른 개발자가 푸쉬해놓은 작업을 보고 싶을 때 사용
  • 일단 가져만 오는 것
  • 내 로컬 브랜치에는 영향 없음
  • 상단 패치 누르면 됨
  • fetch하게 되면 원격의 메인은 원격에 마지막 커밋으로 되어 있지만
    • 내 로컬의 메인은 내가 작업했던 곳이 메인으로 지정되어 있음
  • 이걸 병합하는 방법
    • 원격 오리진 우클릭 후 병합 누르면 됨
    • 이렇게 병합하면 원격저장소와 로컬저장소의 메인이 같아짐

pull : 원격저장소 가져와서 합치기 (변경사항 땡겨와서 로컬저장소와 합치는 것)

  • 패치와 병합을 동시에 하는 방식
  • 즉, 가져와서 내 브랜치에도 바로 적용하는 것
  • 상단 풀누르기

:: 풀리퀘스트 협업

내가 소유하지 않은 원격저장소에 푸쉬 가능한가?

  • 세팅 > 콜라보레이터 들어가면 가능하긴 함
  • 하지만 일반적으로는 불가능함

그래서 원격저장소로 협업을 하기 위해서는 풀리퀘스트를 사용함

풀리퀘스트란

  • 내 변경사항을 pull하도록 요청보내는 방식

풀리퀘스트 보내는 방법

  1. 기여하려는 저장소를 본인계정으로 포크하기
    • 오른쪽 상단 포크 클릭 후 포크 만들기
      • 내 저장소에 없기 때문에 푸시가 안되서 내 저장소에 복사한 것
  2. 포크한 저장소 클론하기
    • 내가 가져온 복사본을 클론
  3. 브랜치 생성 후 생성한 브랜치에서 작업하기
    • 브랜치 생성 후 꼭 해당 브랜치에 체크아웃하고 작업
    • 오른쪽 상단 탐색기로 열어서 작업
  4. 작업한 브랜치 푸쉬
    • 작업한 내 브랜치 체크 하고 브랜치 (main도 같이 체크해도 됨)
  5. 풀 리퀘스트 보내기
    • 푸시했다면 깃허브 해당 레파지토리에 compare&pull request가 떴을 것
    • compare&pull request 클릭 후 요청보내는 상황 잘 됐는지 확인하고 풀리퀘스트 보내기
  6. 해당 파일 주인이 요청받아주면 끝

요청 받아주는 주인시점

  • 아래 코멘트 달아도 됨
  • 병합하려면
    • merge pull request 누르고 confirm merge 누르면 끝
  • 사용하고 이제 사용하지 않을 브랜치는 삭제 해주는 것이 좋음

0개의 댓글