반응형
GitHub
- 오픈소스의 성지로 Git으로 관리되는 프로젝트의 원격 저장소 (https://github.com/)
Personal access token 만들기
GitHub 가입 후 사용하기 위해선 추가적으로 토큰을 발급 받아 사용해야 한다.
- 우측 상단의 프로필 -
Settings
-Developer Settings
-Personal access tokens
-Generate new token
repo
및 원하는 기능에 체크, 기간 설정 뒤Generate token
(Note 는 자유롭게)- 생성된 토큰 안전한 곳에 보관해 둘 것 (한번 표시 후 이후 확인 불가)
토큰 PC에 저장 (MAC)
- finder - 키체인 접근 - github.com - 암호보기를 누른 후 발급 받은 토큰을 붙여 넣고 저장
- github 항목이 없는 경우는 로그인 해보지 않은 경우로 로그인 시도를 먼저하면 된다.
SourceTree 에 깃헙 계정 등록
- SourceTree 접속 - 설정 - 계정 - 다음과 같이 설정 후 암호에 Personal Access Token 입력 후 저장
레포지토리 생성
- Public : 모두에게 보일 수 있는 프로젝트
- Private : 허용된 인원만 볼 수 있는 프로젝트
협업할 팀원 추가
- 생성한 레포지토리의
Settings
-Collaborators
Add people
원격 저장소 사용법
- 레포지토리 생성 시 다음과 같은 화면을 볼 수 있다. 로컬에서 작업한 환경을 원격 저장소로 올릴 것이기 때문에 2번째 스크립트에 해당하는 명령어를 입력한다.
git remote add origin (원격 저장소 주소)
- 로컬의 Git 저장소에 원격 저장소로의 연결 추가
- 원격 저장소 이름에 흔히
origin
사용 (다른 것으로 수정 가능)
- 원격 저장소 이름에 흔히
git branch -M main
- 기본 브랜치명을
main
으로 설정 (git config --global init.defaultBranch main
로 전역 설정을 해준 경우 설정하지 않아도 된다.)
git push -u origin main
- 로컬 저장소의 커밋 내역들을 원격으로 push(업로드)
- -u 또는 --set-upstream : 현재 브랜치와 명시된 원격 브랜치 기본 연결 방식
추가 내용들
git remote
- 원격 목록 보기 (자세히 보기
git remote -v
)
git remote remove (origin 등 원격 이름)
- 원격 지우기 (로컬 프로젝트와의 연결만 끊는 것이며, 레포지토리는 지워지지 않는다.)
git clone (원격 저장소 주소)
- 프로젝트를 다음 명령어를 통해 원하는 위치에 받아올 수 있다.
git clone
은 Git 관리 내역이 포함되어서 다운로드 되며, 일반zip
다운로드는 파일들만 다운 받는다.
push 와 pull
원격 저장소로 커밋 올리기 (push)
Leopards의 members
에 Evie
추가 (커밋 메시지: Add Evie to Leopards
)
git commit -am "Add Evie to Leopards"
- 기존에 있던 파일이기 때문에
-am
명령어를 사용하여 바로 커밋메시지도 적용시킬 수 있다.
git push
- 이미
git push -u origin main
으로 원격 브랜치가 연결되어 있기 때문에git push
만 사용해도 푸쉬할 수 있다.
원격의 커밋 당겨오기 (pull)
GitHub에서 Leopards의 members
에 Dongho
추가 (커밋 메시지 : Add Dongho to Leopards
)
git pull
- 원격의 커밋 당겨오기
- 전체 과정은 다음과 같다.
pull 할 것이 있을 때 push를 하는 경우
- 로컬에서 Leopards의
manager
를Dooli
로 수정 (커밋 메시지:Edit Leopards manager
)
- GitHub에서 Leopards의
coach
를Lupi
로 수정 (커밋 메시지:Edit Leopards coach
)
- push 해보기
- 원격에 먼저 적용된 새 버전이 있으므로 적용 불가
- pull 해서 원격의 버전을 받아온 다음 push 가능
- push 할 것이 있을 시 pull 하는 두 가지 방법
git pull --no-rebase
- merge 방식- 소스트리에서 확인해보기
reset
으로 되돌린 다음 아래 방식도 해보기
git pull --rebase
- rebase 방식- pull 상의 rebase는 다름 (협업시 사용 OK) 즉, 원격 저장소를 먼저 맞춘 후에 로컬에서 한 작업을 이어서 붙인다.
- push하기
협업시 충돌 발생 해결하기
- 로컬에서 Panthers에
Maruchi
추가 (커밋 메시지:Add Maruchi to Panthers
) - 원격에서 Panthers에
Arachi
추가 (커밋 메시지:Add Arachi to Panthers
)
--no-rebase
의 경우
--rebase
의 경우
로컬의 내역을 강제로 push 하기
git push --force
- 로컬의 작업을
Edit Leopards manager
로 reset 한 후 명령어를 입력해보자. 원격 저장소의 커밋 개수가 줄어들고 로컬에서 반영된 히스토리로 강제 적용된 것을 볼 수 있다. (현재 시점 보다 상위인 원격 커밋 기록도 사라짐) - 원격에 강제 적용하는 방식으로 협업 시 합의가 된 경우 또는 개인 작업일 때 사용한다.
원격 브랜치 다루기
로컬에서 브랜치 만들고, 원격에 push 해보기
from-local
브랜치 만들기
git push -u origin from-local
- 해당 명령어로 원격에 push
git branch --all
- 원격의 브랜치들까지 모두 확인 (
git branch -a
)
원격의 브랜치를 로컬에 받아오기
- GitHub에서
from-remote
브랜치 만들기git branch -a
에서 현재는 보이지 않음
git fetch
- 원격의 변경사항을 확인하고,
git branch -a
를 해보면 브랜치 목록에 생성된 것을 확인할 수 있다.
git switch -t origin/from-remote
- 로컬에 같은 이름의 브랜치를 생성하여 연결하는 명령어
원격 브랜치 삭제
git push (원격 이름) --delete (원격의 브랜치명)
SourceTree 에서 진행
원격 추가
- GitHub에 새 레포지토리
git-another-practice
를 만들고 다음과 같이 소스트리에서 원격저장소를 추가한다. 이어서
- 푸쉬를 새로 생성한 저장소로 선택하고 확인을 누르면 새로 만든 원격 저장소에 로컬 파일들이 push된 것을 볼 수 있다.
push 와 pull
- 로컬의 Pumas의
members
에Pororo
추가- 커밋 메시지:
Add Pororo to Pumas
- 소스트리로 커밋과 동시에 푸시
- 커밋 메시지:
- 원격의 Jaguars의
members
에Pinkfong
추가- 커밋 메시지:
Add Pinkfong to Jaguars
- 소스트리로 페치 및 풀
- 커밋 메시지:
브랜치 다루기
- 로컬에
from-local
만들어 원격에 푸시
- 원격에
from-remote
만들고 로컬로 가져와 이동 (소스트리에서 페치를 누르면 origin 하위에 생성된 것을 볼 수 있다.)
본 포스팅은 '인프런 - 제대로 파는 Git & GitHub - by 얄코' 강의를 보고 정리한 내용입니다.
반응형