Git Clone & Push 정리

Git을 처음부터 설치하고 사용하는 방법을 알아보자. 아래 과정을 이용하면 로컬 PC에서 수정하고, 수정된 내용을 Github 저장소로 연동할 수 있다. 본 글은 자세한 내용보다 Github을 사용해 본 입문자 눈높이로 간단하게 설명한다.


Git Bash 설치

먼저 Git을 다운로드 받아야한다.

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. Latest source Release 2.47.0 Release Notes (2024-10-06) Download Source Code GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but ther

git-scm.com

설치 파일을 다운받아 실행 후, 계속 Next를 누르면 설치가 완료된다.


Github 계정과 연동

Git Bash를 열고 Github에 등록된 사용자 이름과 이메일을 등록한다.

$ git config --global user.name "이름"
$ git config --global user.email 이메일

다음으로 SSH 키를 생성한다. SSH 키는 Github 계정 연동을 위한 인증절차다.

$ ssh-keygen

ssh-keygen을 입력하면 아래에 "Enter passphrase"라는 문구가 나오는데 무시하고 엔터를 누르면 된다. 그럼 C:/User/사용자/.sshid_rsa.pub라는 파일이 생성된다. 메모장으로 파일을 열고 내용을 모두 복사해 Github에 등록해주어야 한다.
Github 설정 > SSH and GPG keys > New SSH Key를 클릭해 복사했던 키(id_rsa.pub)를 붙여넣는다. Title은 자유롭게 설정하면 된다.

이제 Git Bash를 이용해 Github을 조작할 준비가 되었다.


Github 저장소 복제

Github 저장소를 내려받을 폴더로 이동해 Git bash를 실행한 뒤, clone 명령어를 통해 저장소를 복제한다.

$ git clone git@github.com:이름/저장소.git

"git@github.com: ..." 부분은 저장소 Code > Clone SSH에서 복사할 수 있다. 참고로 Bash에서 붙여넣기는 Shift + Insert다.
이제 로컬 파일을 수정하고, 수정한 내용을 Github으로 동기화할 수 있다. PC에 Github 저장소의 클론이 생긴 셈이다.


Git bash로 커밋하기

파일이 수정되었다면 아래와 같이 순서대로 입력한다.

$ git add .
$ git commit -m "커밋 메시지"
$ git push

add .는 변경한 모든 내용을 저장한다.
commit은 add한 내용을 읽고 메모를 남긴다. commit -m 뒤에 오는 텍스트는 업데이트 내용에 대해 자유롭게 남길 수 있다.
push는 위 내용을 Gitbub 저장소로 보낸다. Github에 가면 내용이 변경된 것을 확인할 수 있다.


커밋 되돌리기

잘못된 커밋이 있을 때 이전 커밋으로 되돌릴 수 있다.
먼저, log로 커밋을 조회해보자.

$ git log
commit f57725642e6b3270e35a49cd7aac7a9bf89cb1ed (HEAD -> main, origin/main, origin/HEAD)
Author: ...
Date:   ...

    커밋A

commit 24c8129f7c5b5be004da58fb895c5ac146dc7b6c
Author: ...
Date:   ...

    커밋B

commit d072ddd12de71dac084e9f5f92e25c7da113de86
Author: ...
Date:   ...

    커밋C

최근 커밋 메시지가 보이고 Enter를 누르면 이전 커밋이 계속 나타난다. 원하는 커밋을 찾았다면 q를 눌러 조회를 종료한다. 위에 보이는 복잡한 문자열이 해시 값이다. 이 값을 이용해 커밋을 지우는 reset 요청을 한다.

$ git reset --hard 해시값

예를 들어, 위 예시에서 "git reset --hard d072ddd..."를 한다면 코드는 커밋C 상태로 돌아가고 커밋A와 커밋B는 흔적없이 사라진다.
* 참고로  bash에서 복사는 Ctrl + Insert, 붙여넣기는 Shift + Insert다.
커밋을 되돌렸으면 Github에도 변경된 내용을 push하자.

$ git push -f origin main