Critical
- 깃허브가 하는 일
- git clone
- 깃허브 등록 및 SSH키 설정
- 깃허브 저장소 만들기
- 원격 작업
- git push
* Github란?
깃 저장소를 위한 호스팅 플랫폼이다.
깃 허브에 등록한 저장소가 포트폴리오가 될 수 있다.
최신 정보를 얻기에도 매우 유용하다.
git clone <url>
로컬에 없는 저장소를 가져온다.
깃허브의 공개 저장소에 있는 것들은 모두 클론이 가능하다. 단, 푸시는 불가능하다.
그리고 거의 대부분의 경우에 깃허브가 쓰일 뿐이지 깃허브만 가능한것이 아니다. git clone 명령어도 github와 관계가 없다.
* SSH키 설정 및 깃허브에 등록하기 (Windows 기준)
깃허브 가입이 완료된다면 SSH키를 설정해야한다. 그래야 매번 로그인을 하지 않고도 인증할 수 있기 때문이다.
SSH키가 있으면 그걸 사용하면 되고 없다면 터미널 명령어로 생성시켜 주어야 한다.
$ ssh-keygen -t ed25519 -C <email>
> Generating public/private ALGORITHM key pair.
암호 설정까지 끝내고 생성을 완료했다면 SSH 에이전트를 실행시켜서 키를 추가시켜 준다.
$ eval "$(ssh-agent -s)"
> Agent pid ****
$ ssh-add ~/.ssh/id_ed25519
> Identity added: /c/User/../.ssh/id_ed25519 (email)
깃허브에서 SSH키를 등록하기 위해 공개키를 복사 한다.
$ clip < ~/.ssh/id_ed25519.pub
깃허브의 Setting - [Access] 의 SSH and GPG keys 페이지로 이동해서 "New SSH key" 를 클릭해서 복사한 키를 입력하고 제목을 정해주면 완료된다.
과정이 번거롭지만 디바이스별로 딱 한번만 등록해두면 다시는 할 필요가 없다.
* 로컬에 기존 저장소가 있는 경우
- 깃허브에서 새 저장소를 만든다.
- 로컬 저장소에서 원격을 만든다.
- 푸시한다.
* 아직 작업을 시작하지 않은 경우
- 깃허브에서 새 저장소를 만든다.
- 클론한다.
- 푸시한다.
git remote
현재 저장소에 있는 원격 목록을 보여준다
git remote -v : 저장소의 주소까지 출력해준다.
git remote add <remote> <url>
새로운 원격을 만들어준다. url은 깃허브의 저장소 주소이다.
일반적으로 원격 이름은 origin으로 만든다. 원격은 여러개 존재할 수 있다.
아래와 같은 명령어도 사용된다.
git remote rename <old> <new> : 원격 이름을 수정한다.
git remote remove <name> : 원격을 삭제한다.
remote는 깃에게 알려줄 url에 이름을 붙인것이다.
git push <remote> <branch>
깃에게 대상 저장소 및 푸시할 브랜치를 알려준다.
git push origin main 은 정말 흔하게 사용하는 명령어이다.
원격 유무를 포함한 정보를 확인한 후에 push를 실행하면 아무것도 없던 저장소에 파일들이 추가된다.
로컬에서 작업하던것을 깃허브에 올린것이기 때문에 로컬에서 작업했던 브랜치의 이력들이 모두 올라간다.
현재는 main 브랜치만 푸시했기 때문에 main 브랜치만 존재한다.
git push <remote> <local-branch>:<remote-branch>
기본적인 푸시는 로컬 브랜치가 원격 저장소에 존재하지 않으면 새로 생성하고 그 이후에는 같은 브랜치에 푸시되는 방식이다. 즉, 로컬 A브랜치를 원격 저장소의 A브랜치로 푸시하는 것이다.
여기서 로컬 브랜치와 원격 저장소의 브랜치를 다르게 설정할 수 있다. 로컬 A브랜치를 원격 저장소의 B브랜치로 푸시할 수 있다는 것이다.
일반적으로 자주 사용되는 명령어는 아니다.
git push -u <remote> <branch>
upstream의 약어이다. 로컬 브랜치를 원격 브랜치에 연결시킨다.
# local의 main을 origin의 main에 연결한다
$ git push -u origin main
연결시키고 난 뒤에는 git push 명령어 만으로도 푸시가 가능해진다.
보통은 main 브랜치를 처음 푸시할 때 사용한다.
로컬 브랜치와 깃허브의 브랜치는 다르다는 것을 인지해야한다.
깃허브는 로컬 저장소와 자동으로 동기화되지 않는다.
'프로그래밍 > Git & Github' 카테고리의 다른 글
[Git & Github] 13. Github의 이모저모: 잡다한 지식 (0) | 2022.10.25 |
---|---|
[Git & Github] 12. Fetch와 Pull (0) | 2022.10.24 |
[Git & Github] 10. 변경사항 취소하기 및 시간 여행 (0) | 2022.10.22 |
[Git & Github] 9. 스태시(Stash)의 모든 것 (0) | 2022.10.21 |
[Git & Github] 8. Git Diff로 변경사항 비교하기 (0) | 2022.10.20 |