8장
이 장에서 배울 명령어
git clone : 원격 저장소를 복제하기
git remote : 원격 저장소를 추가, 조회, 삭제하기
git push : 원격 저장소에 밀어주기
git fetch : 원격 저장소를 일단 가져만 오기
git pull : 원격 저장소를 가져와서 합치기
git 명령 --help : 매뉴얼 페이지 보기
8.1 원격 저장소와 상호 작용하기
8.1.1 git clone : 원격 저장소를 복제하기
원격 저장소를 클론하는 명령 : git clone<원격 저장소>
1. 원격 저장소 링크에 접속
url : https://github.com/kangtegong/collaboration
GitHub - kangtegong/collaboration: 『모두의 깃&깃허브』 (길벗) 실습 저장소
『모두의 깃&깃허브』 (길벗) 실습 저장소. Contribute to kangtegong/collaboration development by creating an account on GitHub.
github.com
2. code 클릭한 다음 원격 저장소 경로를 복사
3. 저장소를 클론 받을 위치에서 깃 배시 열기
여기서는 C 드라이브 밑에 있음
4. 원격 저장소를 클론하기
원격 저장소를 클론하는 명령은 git clone <원격 저장소> 임
Cloning into 'collaboration'...
The authenticity of host 'github.com (20.200.245.247)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
=> 라고 나옴;;
by chatGPT : 위 메시지는 사용자가 git clone 명령을 사용해 GitHub에서 리포지토리를 복제하려고 할 때 발생한 상황을 보여줍니다.
The authenticity of host 'github.com (20.200.245.247)' can't be established.
- Git이 github.com 호스트의 신뢰성을 확인할 수 없다는 경고 메시지입니다. 이는 사용자의 PC가 GitHub의 서버에 처음 연결할 때 SSH 키가 로컬에 저장되어 있지 않기 때문
Are you sure you want to continue connecting (yes/no/[fingerprint])?
- 사용자가 이 서버를 신뢰할지 묻는 메시지입니다. yes를 입력하면 서버의 공개 키가 로컬 머신의 ~/.ssh/known_hosts 파일에 저장되고, 이후 동일한 서버에 다시 연결할 때 경고 없이 인증이 진행됩니다.
git remote : 원격 저장소를 추가, 조회, 삭제하기
git remote 는 원격 저장소를 추가하고, 조회하고, 삭제할 수 있는 명령
8.2.2 git remote : 원격 저장소를 추가, 조회, 삭제하기
git remote : 원격 저장소를 추가하고, 조회하고, 삭제할 수 있는 명령
현재 상황
로컬 저장소 sinamon_zzang 은 원격 저장소 sinamon_zzang 의 존재를 알지 못함
따라서 로컬 저장소는 원격 저장소와 상호 작용할 수 없음
상호 작용하려면 원격 저장소를 로컬 저장소에 추가해야 함
또는
로컬 저장소에 원격 저장소를 추가했기 때문에 이제 로컬 저장소는 운격 저장소와 상호 작용할 수 있게 됨
8.1.3 git push : 원격 저장소에 밀어넣기
푸시는 로컬 저장소의 변경 사항을 원격 저장소에 밀어넣는 방법
원격 저장소에는 어떤 커밋도 없고, 로컬 저장소에 하나의 커밋이 추가됨
이 커밋을 원격 저장소에 반영하려면 원격 저장소로 푸시해야 함
키 때문이었음
내가 가입한 깃헙 이메일은 shina_lee@tmax.co.kr 로 아래 블로그 대로 다시 하면 됨 (개같당**)
https://soda-dev.tistory.com/72
[Github] git@github.com: Permission denied (publickey). 에러 해결
git push 또는 git pull 할 때 발생하는 에러 git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 새로 ssh key를 만들어줘
soda-dev.tistory.com
git remote add origin git@github.com:shinalee/sinamon_zzang.git
# 원격 저장소를 origin 이라는 이름으로 추가하는 명령
git branch -M main
#git branch -M <브랜치명> : 현재 브랜치 이름을 <브랜치명>으로 바꾸는 명령, 즉 이 명령은 현재 브랜치(master)를
#main으로 변경하는 명령(브랜치 이름을 바꾸는 경우 드물다.)
#깃허브에서는 기본 브랜치 이름으 master 브랜치가 아니라 main 브랜치로 지칭
#로컬컬 저장소의 기본 브랜치는 master 이지만 깃허브의 기본 브랜치는 main 이기 때문에 로컬 저장소의 기본 브랜치
#(master)에서 만든 변경 사항을 깃허브의 기본 브랜치(main)
#로컬의 기본 브랜치에서 만든 변경사항을 깃허브의 기본 브랜치로 푸시하기 위해서
#브랜치 이름 main으로 변경해야 함
git push -u origin main
#git push -u <원격 저장소 이름> <브랜치 이름> : 원격 저장소 origin으로 로컬 저장소 main 브랜치의 변경사항을 푸시하는
#-u 옵션은 처음 푸시할 때 한 번만 사용하면 되는데, 이 옵션과 함께 푸시하면 추후 git push, git pull 명령만으로도
#origin의 main 브랜치로 푸시(또는 풀) 할 수 있음
8.1.4 git fetch : 원격 저장소를 일단 가져만 오기
git log 명령으로 지금까지 로컬 저장소 상황 확인
로컬 저장소의 main 브랜치와 원격 저자오의 main 브랜치 모두 동일하게 커밋 두 개가 쌓여있음
해당 에러는 git push 또는 git pull 할 때 발생하는 에러
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
새로 ssh key를 만들어줘야 함.
1. ssh key 생성
ssh-keygen -t rsa -C shina_lee@tmax.co.kr
2. ssh key 저장 위치 지정(엔터 입력 시 기본 저장된 위치에 저장)
3. 비밀번호 지정(엔터해서 넘기기 가능, tmax1234!)
4. ssh key 확인하기
cat ~/.ssh/id_rsa.pub
=> 위 명령어 입력 시 키 값 두세줄 좌라락 나옴, 위 명령어로 나온 키를 github에 등록
5. Settings -> SSH and GPC Keys -> New SSH key -> Key 부분에 위에서 확인한 ssh키 복붙하기
원격 저장소를 확인하면 로컬 저장소에서 커밋한 내용 확인 가능함
8.1.4 git fetch : 원격 저장소를 일단 가져만 오기
세 번째 커밋을 추가하고, 이를 로컬 저장소로 패치
원격 저장소로 접속한뒤 a.txt 클릭
원격 저장소에는 세 개 쌓여 있음
이런 상황에서 패치하면?
=> origin/main 브랜치는 현재 main 브랜치에 비해 한 커밋 앞서 있다는 의미
왜?
패치는 원격 저장소의 변경 사항을 origin/main 브랜치로 가져올 뿐 main 브랜치는 변함이 없기 때문
즉, 패치는 원격 저장소의 변경 사항을 일단 가지고 올 뿐 로컬 저장소의 브랜치로 병합하지는 않는다.
원격 저장소의 브랜치로 체크아웃
패치한 결과를 로컬 저장소의 main 브랜치로 병합
다시 main 브랜치로 체크아웃
8.1.5 git pull : 원격 저장소를 가져와서 합치기
풀은 패치와 병합을 동시에 하는 방식
1. 깃허브에서 새로운 커밋 추가
원격 저장소의 변경 사항을 풀
git pull or git pull <원격 저장소 이름>
원격 저장소의 변경 사항 풀
git pull or git pull <원격 저장소 이름>
'QA 업무' 카테고리의 다른 글
[CI/CD] [git&github] 8.2 깃 명령으로 풀 리퀘스트 보내기 (1) | 2024.12.20 |
---|---|
[CI/CD] [git&github] 7.4 브랜치 관리하기 (2) | 2024.12.18 |
[CI/CD] [git&github] 7.3 작업 임시 저장하기 (0) | 2024.12.18 |
[제로베이스에서 취업까지 QA편] 3.2 네트워크 테스트 (2) | 2024.12.06 |
[제로베이스에서 취업까지 QA편] 3.1 API 테스트 (0) | 2024.12.05 |