📜 Git
:: ✍ git 깃허브로 협업하기
- 깃허브
- 개발자들의 sns
- 원격저장소호스팅서비스
- 백업과, 협업을 위해 사용함
- 원격저장소 만들기
repository -> new -> 저장소이름 / 프로젝트설명 넣기
:: 깃허브 소스트리 연동
- ssh 사용
- 두개 키(=암호) 생성
- 공개키 개인키
- 개인키는 남들이 내 파일을 봐도 못알아먹게 하는 암호화 기능
gitbash에서 key 생성
- ssh-keygen
- 경로확인 후 엔터
- 받아보기 직전 암호 필요하면 저고 아니면 엔터
- 암호 확인 똑같이 적거나 그냥 엔터
gitbash에서 특정 파일 열어보기
cat 파일위치
위 방법으로 공개키 보고 복사 후 깃허브에 등록
github에 ssh key 등록
- 깃허브에는 여러 ssh키 등록 가능
- 설정 > ssh and gpg keys > new ssh key > 이름 정하고 복사한 공개키 복붙
소스트리 설정
소스트리에 깃허브 계정 연결
:: 원격저장소와의 네가지 상호작용
- clone : 원격저장소 복제
- push : 원격저장소에 밀어넣기 (업로드)
- fetch : 원격저장소 일단 가져만 오기
- pull : 원격저장소 가져와서 합치기 (변경사항 땡겨와서 로컬저장소와 합치는 것)
clone : 원격저장소 복제
- 내 원격저장소에서 복제하는 것은 리모트에 해당 레파지토리 클론버튼 누르기
다른 사람의 원격저장소 복제해오기
- 코드 클릭 후 ssh복사
- 소스트리로 와서 상단 클론버튼 누르고 경로에 붙혀넣기
- 깃저장소입니다라고 떠야 정상
- 저런 문구가 뜨면 아래 저장될 장소와 이름이 뜸 (수정해도 되고 안해도 되고)
- 하단 클론 누르기
- 모든 히스토리가 모두 복제 됨
- 클론을 하게 되면 .git 숨김폴더까지 모두 받아오게 됨
원격저장소 브랜치 이름
- main == master브랜치
- origin == 원격저장소에 붙은 일종의 별명 (변경도 가능)
- origin/HEAD == 원격저장소 origin의 HEAD (원격저장소의 해드)
- origin/main == 원격저장소 origin의 main (원격저장소의 메인)
push : 원격저장소에 밀어넣기 (업로드)
- 즉, 로컬에서의 변경사항 밀어넣기
- 내가 소유한 원격저장소에만 push 가능함
- 상단 push 클릭
다른방식의 push
- 로컬에 있는 것을 바로 push
- 이미 로컬에 쌓여있는 것을 상호작용할 폴더 만들어 push
- 깃허브에 레파지토리 만들기
- ssh 경로 복사
- 소스트리로 돌아와서 좌측상단 설정들어가서 origin적고 ssh경로 붙혀넣고 확인
- push 누르고 push할 것 체크
fetch : 원격저장소 일단 가져만 오기
- 변경사항을 가져오되 병합하진 않는 방식
- 협업 중 내가 한 작업에는 영향을 받고싶지 않은데 다른 개발자가 푸쉬해놓은 작업을 보고 싶을 때 사용
- 일단 가져만 오는 것
- 내 로컬 브랜치에는 영향 없음
- 상단 패치 누르면 됨
- fetch하게 되면 원격의 메인은 원격에 마지막 커밋으로 되어 있지만
- 내 로컬의 메인은 내가 작업했던 곳이 메인으로 지정되어 있음
- 이걸 병합하는 방법
- 원격 오리진 우클릭 후 병합 누르면 됨
- 이렇게 병합하면 원격저장소와 로컬저장소의 메인이 같아짐
pull : 원격저장소 가져와서 합치기 (변경사항 땡겨와서 로컬저장소와 합치는 것)
- 패치와 병합을 동시에 하는 방식
- 즉, 가져와서 내 브랜치에도 바로 적용하는 것
- 상단 풀누르기
:: 풀리퀘스트 협업
내가 소유하지 않은 원격저장소에 푸쉬 가능한가?
- 세팅 > 콜라보레이터 들어가면 가능하긴 함
- 하지만 일반적으로는 불가능함
그래서 원격저장소로 협업을 하기 위해서는 풀리퀘스트를 사용함
풀리퀘스트란
풀리퀘스트 보내는 방법
- 기여하려는 저장소를 본인계정으로 포크하기
- 오른쪽 상단 포크 클릭 후 포크 만들기
- 내 저장소에 없기 때문에 푸시가 안되서 내 저장소에 복사한 것
- 포크한 저장소 클론하기
- 브랜치 생성 후 생성한 브랜치에서 작업하기
- 브랜치 생성 후 꼭 해당 브랜치에 체크아웃하고 작업
- 오른쪽 상단 탐색기로 열어서 작업
- 작업한 브랜치 푸쉬
- 작업한 내 브랜치 체크 하고 브랜치 (main도 같이 체크해도 됨)
- 풀 리퀘스트 보내기
- 푸시했다면 깃허브 해당 레파지토리에 compare&pull request가 떴을 것
- compare&pull request 클릭 후 요청보내는 상황 잘 됐는지 확인하고 풀리퀘스트 보내기
- 해당 파일 주인이 요청받아주면 끝
요청 받아주는 주인시점
- 아래 코멘트 달아도 됨
- 병합하려면
- merge pull request 누르고 confirm merge 누르면 끝
- 사용하고 이제 사용하지 않을 브랜치는 삭제 해주는 것이 좋음