Git으로 관리하는 프로젝트들을 온라인 공간에 공유해서 프로젝트 구성원들이 함께 소프트웨어를 만들어갈 수 있도록 도와주는 서비스(Git으로 관리되는 프로젝트의 원격 저장소)
GitHub 등의 온라인 Git 저장소는 모든 업로드와 다운로드를 커밋 단위로 주고받는다.
한 사용자가 작업을 마치고 커밋을 해서 버전을 만들고 업로드를 하면 GitHub 상의 프로젝트는 해당 버전으로 최신화가 된다.
다음 사용자가 완료한 작업을 커밋해서 올리기 위해서는 반드시 GitHub상의 최신 커밋을 먼저 다운로드하여 컴퓨터에 있는 프로젝트에 적용부터 하도록 강제가 된다.
커밋 상에 충돌사항이 있다면 컴퓨터에서 해결하고 나서야 작업한 커밋을 공유공간에 올릴 수 있다.
즉 모든 사용자가 먼저 공유된 최신 버전으로 프로젝트를 업데이트하고 나서야 GitHub에다 작업물을 업로드할 수 있다.
1. 가입하고 토큰 만들기
1. Sign Up으로 가입 후 로그인
2. Personal access token 만들기
우측 상단의 프로필 - Settings 왼쪽 메뉴 Developer Settings Personal access tokens - Generate new token New personal access token Note에 원하는 이름 생성, Expiration로 기한 설정 repo 및 원하는 기능에 체크 후 Generate token 토큰을 미리 복사해두고 안전한 곳에 보관해 둘 것
3. 토큰 컴퓨터에 저장하기
윈도우 가이드 Windows 자격 증명 관리자 Windows 자격 증명 선택 git:https://github.com 자격 정보 생성 사용자명과 토큰 붙여 넣기
4. 소스트리에도 계정 추가하기
상단 탭의 도구 > 인증 > Git 저장된 비밀번호 인증방식은 베이직, 프로토콜은 HTTPS로 설정 사용자명(GitHub 아이디)과 암호(토큰) 설정
5.GitHub에 새Repository생성
Public: 모두에게 보일 수 있는 프로젝트(오픈 소스 프로젝트)
Private: 허용된 인원만 볼 수 있는 프로젝트
6. 협업할 팀원 추가
레포지토리의 Settings - Access- Collaborators Add people
2. 원격 저장소 사용하기
1.로컬에 원격 저장소 추가 후 푸시
HTTPS 주소 복사!로컬에 이미 git으로 관리되고 있는 프로젝트가 있기 때문에 두 번째 것을 복사해준다.
복사해서 프로젝트 bash에 붙여 넣어준다.
토큰을 성공적으로 입력했다면 밑에 명령어들이 표시되고, 깃허브를 새로고침 하면 레포지토리에 파일들이 등록된 것을 확인할 수 있다.
로컬에서 Panthers의 member Maruchi를 추가 커밋 메시지: Add Maruchi to Panthers
원격에서 Panthers에 Arachi 추가 커밋 메시지: Add Arachi to Panthers
pull 하여 충돌 상황 마주하기 --no-rebase와 --rebase 모두 해 볼 것
1. git pull --no -rebase
새로운 이름인 Marachi로 저장 git add . git commit
로컬에서 합쳐진 것을 볼 수 있다. (모르고 Arachi를 두 번 커밋했다… 결과는 똑같아서 상관..x 무시하기..)
--rebase방법을 쓰기 위해서reset , ( Add Marauchi to Panthers 시점으로 초기화)
2. git pull --rebase
만약 원격에서 적용했던 Arachi로 저장한다면?
커밋이 한 개만 추가가 된다.(이미 원격에서 저장되어있기 때문에 두 번 할필요 xx)
(Add Araruchi to Panthers시점으로 초기화)
이름을 Maruchi로 바꾸고 git commit -am "Add Maruchi to Panthers"
이름을 Marauchi로 변경하고 git add . .git rebase –continue :wq로 저장
3. 로컬의 내역 강제 push 하기
협업할 때 미리 합의한 상황이 아니라면 사용하면 안 됨, 동료와 협업하는 도중에 동료가 한 것이 없어질 수 있기 때문(혼자서 프로젝트하는 도중이나 협업한 게 원격 위에 있는 게 뭔가 잘못되어서 서로 합의가 된 상태에서 어떤 로컬에 있는 것으로 원격을 다시 맞출 때 사용)
로컬의 내역 충돌 전으로 reset (Edit Leopards manager로 초기화 reset)
아래 명령어로 원격에 강제 적용
git push –force
깃헙 저장소 새로고침 뒤 확인
Arachi를 저장하기 전으로 돌아갔다.(아예 원격에서 저장했던 것이 삭제됨)
5. 원격의 브랜치 다루기
1. 로컬에서 브랜치를 만들어 원격에 push 하기(업로드)
from-local 브랜치 만들고 from-local 브랜치로 이동
git switch -c from-local
아래 명령어로 원격의 브랜치 명시 및 기본 설정
git push -u origin from-local
from-local 브랜치를 origin의 대상 브랜치로 정한 다음에 push 한다..!
깃헙(원격)에서 from-local 브랜치가 생성된 것을 알 수 있다.
깃헙(원격)에서 from-local브랜치로 변경 jaguars.yaml에서 manager이름을 변경 commit(원격에서만 일어난 변화)
main 브랜치에서는 변화가 일어나지 않았다.
브랜치 목록 살펴보기(git branch는 로컬만)
git branch –all / git branch -a
소스트리
2. 원격에서 브랜치를 만들어 로컬에 pull 하기(다운로드)
GitHub에서 from-remote 브랜치 만들기
git branch -a를 해도 from-remote는 나타나지 않음(로컬의 깃이 원격의 변화들을 업데이트하지 않았기 때문)
git fetch // git branch -a로 확인
원격의 브랜치를 로컬로 받아와야 한다!!
로컬에 같은 이름의 브랜치를 생성하여 연결하고 switch(생성과 연결 한 번에)
git switch -t origin/from-remote
앞에서 깃헙(원격, from-local)에서
Edit Jaguars manager를
commit한 것이 pull로 하면서 로컬(from-local)로 들어오게 된다.
3. 원격의 브랜치 삭제
git push(원격 이름) --delete(원격의 브랜치명)
main 브랜치에서 로컬의 from-local과 from-remote도 삭제한다. (git branch -d 브랜치명)
로컬의 main과 원격의 main만
남은 것을 확인할 수 있다.
6. SourceTree로 진행하기
1. 원격 추가하기
GitHub에 새 레포지토리 만들고 origin2로 추가
소스트리 상단 탭 > 저장소 > 원격 저장소 추가 > 추가
현재 프로젝트를 origin2에도 push 하기
이렇게 원격을
여러 군데 만들 수 있다.
2. push와 pull
로컬의 Pumas의 members에 Pororo 추가 커밋 메시지: Add Pororo to Pumas 소스트리로 커밋과 동시에 푸시
원격에 커밋과 동시에 push 됨!
원격에서 Jaguars의 members에 Pinkfong 추가 커밋 메시지: Add Pinkfong to Jaguars 소스트리로 페치(fetch) 및 풀(pull)
패치를 누르면 원격에서 한 commit이 로컬에서 한 commit보다 앞서 들어왔다는 것을 알 수 있다.