깃 허브는 서버 저장소 (원격 저장소)로 로컬 저장소의 코드를 복제하여 다른 개발자들과 공유하고 협업할 수 있게 해준다
로컬 저장소에 저장된 코드를 깃 허브에 연동하기 위해
깃 허브에 가입한다
GitHub: Let’s build from here
GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...
github.com
원격 저장소 생성

가입하고 레포지토리를 생성하자

README 파일을 깃 허브에서 생성해줘도 되지만, 이번에는 로컬 저장소에서 생성해서 푸쉬해볼 것이다

레포지토리가 생성된 것을 확인할 수 있다
원격 저장소와 로컬 저장소 연결

로컬 저장소에서
git remote
명령어로 연결된 원격 저장소를 출력한다
아직 연결을 안했으니 아무것도 출력되지 않았다

git remote add 원격저장소별칭 원격저장소URL
명령어로 생성한 레포지토리랑 연결해주자
그리고 git remote를 입력하면 연결된 원격 저장소의 별칭이 뜬다
원격저장소URL은 http 주소를 입력해주자
ssh 방식을 사용하면 보안이 좋지만 인증서를 생성해야하기 때문에 다음에 알아보려고 한다

git remote show 원격저장소별칭
명령어를 입력하면 페치와 푸쉬, 두 주소가 출력된다
README.md 파일 작성

echo "작성메시지" >> README.md
명령어로 로컬 저장소에 README.md 파일을 생성한다

그러면 실제 파일이 생성되고

생성된 파일을 등록하고 커밋해주자
참고로 원격 저장소 연결 해제는
git remote rm 원격저장소별칭
이고 다시 git remote -v 명령어로 연결된 저장소를 확인하면 원격 저장소가 연결 해제된 것을 확인할 수 있다
PUSH
푸쉬는 원격 저장소로 커밋된 파일들을 업로드하는 동작이다
원격 저장소가 연결되었다면

git push 원격저장소별칭 브랜치이름
명령어로 master 브랜치에 현재 브랜치를 업로드한다

깃 허브의 레포지토리에서 푸쉬된 파일들을 확인할 수 있다
내려받기
이제 깃 허브에 저장된 파일들을 새로운 로컬 저장소에 내려받아 볼 것이다

로컬 저장소에서 나와 새로운 폴더를 생성하고 이동하자

git clone 원격저장소주소
명령어를 입력하면 git init 명령어 외에 추가적으로 원격 서버 접속 명령어들이 수행되면서 원격 저장소가 연결되고 이후 원격 저장소의 파일들을 복제한다

실제 폴더에 들어가면 그대로 복제된 것을 확인할 수 있다
Pull
clone 명령어는 원격 저장소의 내용을 한번에 내려받는다
처음 내려받을 때는 clone을 사용하고 이후 내려받을 때는 pull이나 fetch를 사용한다
Pull 명령어는 로컬 저장소보다 최신인 갱신된 원격 저장소의 커밋 정보를 현재 로컬 저장소로 내려받는다
다시 원래 로컬 저장소로 이동해서

test1.htm 파일을 하나 생성하고

등록, 커밋, 푸쉬까지 진행하자

정상적으로 완료되었다

복제된 저장소로 가서
로그를 확인하니 README 추가 커밋까지 확인할 수 있는데

git pull
명령어를 통해 원격 저장소에 갱신된 새 커밋 정보를 가지고 올 수 있다
로컬 저장소와 원격 저장소의 커밋 정보를 비교하여 갱신하게 된다

로그를 확인하면 커밋 정보가 갱신된 것을 확인할 수 있다
Fetch
fetch도 내려받는 기능인데, pull 과 다른점은 수동으로 내려받는다는 점과 내려받은 후 자동으로 병합 처리하지 않는다는 것이다
pull 명령어는 가끔 병합하지 못하는 문제가 발생하는데, 이럴때 fetch를 사용한다
원본 저장소로 가서 test1.htm 파일을 수정해보자

위와 같이 수정하고

커밋과 푸쉬까지 완료한다
다시 복제 저장소로 가서

git fetch
명령어로 fetch한다

fetch가 완료되었지만 로그를 확인했을 때 커밋이 추가된 것을 확인할 수 없다
아직 데이터만 내려받았을 뿐 병합하지 않아서 생기는 문제인데, 내려받은 파일을 병합만 해주면 해결된다
Merge

git merge 원격저장소별칭/브랜치이름
명령어로 내려받은 데이터를 로컬 저장소에 적용할 수 있다
(아까 복제 저장소를 init으로 초기화한게 아니라 clone으로 초기화를 함께 하다보니까 원격 저장소 별칭이 자동으로 origin으로 설정되었다)

로그를 확인하면 정상적으로 fetch와 merge 된것을 확인할 수 있다
여러 사람이 원격 저장소를 공유할 때 푸쉬에서 문제가 생길 때가 있다
서로 푸쉬하는데 시간이 달라서 생기는 문제로 충돌이라고 하는데
이런 문제를 겪지 않으려면
코딩 후 커밋하고 푸쉬하는 사이에 조종 pull로 최신 커밋을 내려받자
'개발 툴' 카테고리의 다른 글
| [AWS] RDS, EC2 삭제 (0) | 2024.02.17 |
|---|---|
| [Git] gitignore 인식 오류 (0) | 2024.01.14 |
| [Git] GitHub CLI - push 오류, https & ssh 인증 해결하기 (1) | 2023.12.21 |
| [Git] 커밋 (1) | 2023.10.26 |
| [Git] Windows Git 설치와 Git 저장소 생성 (0) | 2023.10.25 |