본문 바로가기
CS/GIT

[GIT] GIT BASH로 SSH 연결 후 프로젝트 PUSH

by Hoozy 2023. 10. 31.
  • 예전에는 프로젝트를 github에 push 할 때 아무것도 모르고 https url로만 push를 진행하였다.
  • 이제는 안전한 SSH(Secure Shell) url을 통해 push 하는 법을 배워보려 한다.

SSH

  • Secure Shell의 약자로, 보안이 강화된 원격 접속 방법이다.
  • private 키와 public키를 활용해 사용하는 기기를 인증하는 방법이다.

1. GIT 설치

2. 로컬 컴퓨터에 SSH 키 생성

  • GIT BASH를 실행하고 아래 순서에 따른다.
cd ~ // 1. 홈 디렉토리로 이동
ssh-keygen // 2. ssh 키를 생성한다
// 이후 엔터를 2번 치라고 나오는데 아무것도 입력 없이 엔터 2번 치면 생성이 되었다고 나온다.
cd ~/.ssh // 3. .ssh 폴더로 이동한다
ls -la // 4. .ssh 폴더에 ssh 키가 생성되어 있나 확인한다. -> private, public 키가 있으면 성공

cat id_rsa.pub // public 키를 가져온다.
// 이후에 나오는 긴 키를 복사한다.

3. 로컬 컴퓨터에서 SSH 원격 접속으로 원격 저장소와 연결

  • 다시 github 홈페이지로 이동해서 프로필을 클릭 후 Setting을 클릭한다.

  • 그다음 ssh and gpg keys 로 이동한다.

  • 그 다음 new SSH key 를 클릭 후 아래 이미지처럼 키 복사 란에 복사한 키를 붙여넣기 한다.

  • 이후 push 하고 싶은 repository의 SSH url을 복사한다.

  • 그 후 폴더를 열어 자신의 프로젝트 루트 경로에서 마우스 우클릭 후 아래 이미지에 보이는 것처럼 open git bash here를 클릭한다.

  • 이후 git bash 코드에서 아래처럼 입력한다.
git init . // 현재 폴더에 .git 폴더 생성하여 현재 폴더를 로컬 저장소로 초기화
git remote add origin [복사한SSH url] // 현재 로컬 저장소를 원격 저장소와 연결한다. 
git remote -v // 현재 원격 저장소가 어떤 프로젝트와 연결되어 있는지 확인할 수 있다.

4. 파일을 수정하고 git push 하는 법

  • 맨 처음 파일을 push 할 때에는 git push 명령어로 바로 push 하면 되지만, 처음 push 이후 파일을 수정 또는 추가 하고 나서 그냥 push를 해버리면 충돌이 일어날 수 있다.
  • 그래서 충돌을 방지하기 위한 방법을 배워보려고 한다.
  • git의 구조는 로컬 저장소와 원격 저장소가 있으며 정확한 구조는 아래 이미지를 참고하면 좋다.

출처 : https://velog.io/@hahaha/Git-%EA%B5%AC%EC%A1%B0%EC%99%80-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%86%8C%EA%B0%9C

git pull origin main // 원격 저장소에 있는 파일들을 로컬 저장소에 최신화 한다. -> 충돌 방지
git branch -m master main // 브랜치가 다르다고 오류나면 브랜치 바꾸기
git status // 로컬 저장소의 작업 환경을 알 수 있는 명령어
git diff // 수정된 파일을 확인하는 명령어
git add . // 파일들을 스테이지에 추가하는 명령어.
git status // 파일들이 정상적으로 스테이지에 추가되었나 확인
git commit -m "남길 메시지" // 커밋하는 명령어 이며, -m은 메시지를 남길 때 사용하는 명령어이다.
git status // 정상적으로 커밋이 되었나 확인
git push origin main // 원격 저장소로 푸시하는 명령어

참고 자료

https://12716.tistory.com/entry/Git-GitHub-%EA%B9%83%ED%97%88%EB%B8%8C-SSHSecure-Shell-%EC%9B%90%EA%B2%A9-%EC%A0%91%EC%86%8D
https://extbrain.tistory.com/155

'CS > GIT' 카테고리의 다른 글

스프링부트와 GITHUB 연동하기 예제  (0) 2023.03.29
[백엔드] GIT / GITHUB  (0) 2023.03.29

댓글