[Git]Repository 만들기

LMH·2022년 11월 11일
1
post-thumbnail

개발자들의 코드를 효율적이고 안전하게 관리하기 위하여 사용하는 '분산형 버전 관리 시스템'이며, 다른 개발자들과 협업을 위해서 버전 관리 시스템의 사용법을 익히는 것은 무척이나 중요합니다.

오늘은 로컬 저장소(Local Repository)를 만들고 변경된 파일을 원격 저장소에(Remote Repository) 올리는 방법을 정리하고자 합니다.

Local Repository

Local Repository는 내 컴퓨터의 저장소를 의미하며, 로컬 환경의 디렉토리를 git Repository로 추가하면 git에서 그 디렉토리에서 발생하는 변화를 감지할 수 있게 됩니다.

// 터미널에서 해당 디렉토리로 이동하여 명령어를 사용한다.
cd ~/Desktop/Code/my-app
git init

Repository는 크게 세가지 영역으로 나누어집니다.

  • work scpace
  • staging area
  • commit

work space

git init 명령으를 통해 Repository를 생성하면 git의 관리하에 들어오는 디렉토리를 work space라고 합니다.

staging area

git에서는 work space에서 지정한 파일의 변경을 추적할 수 있는데 이렇게 git의 관리하에 두는 파일들을 staging area에 추가합니다.

// 특정 파일을 git의 관리하에 두기 위해서는 add 라는 명령어를 사용합니다.
cd ~/Desktop/Code/my-app
ls // index.css index.html
add index.js // index.csss 파일을 staging area에 추가

git add . // 디렉토리 내 모든 파일을 staging area에 추가

git status // staging area로 옮겨졌는지 확인

아래는 git status 명령어 사용 시 터미널에 출력된 내용이다.
첫 번째로 현재 브런치 이름이 출력됩니다. 현재 브런치는 master로 첫번째 브런치를 의미합니다
두 번째로 출력된 내용은 아직 commit하지 않았음을 알려줍니다.
세 번째로 출력된 내용은 stagin area에 올라간 파일들을 확인 가능합니다.
또한, unstage를 위해서는 git rm --cached [파일명] 이라는 명령어를 사용할 수 있음을 알 수 있습니다.

commit

commit은 쉽게 말해 코드 묶음으로 저장는 것입니다. staging area에 있는 파일을 묶어 저장하고 메시지를 기록할 수 있습니다. 메시지를 기록한다는 의미는 그 코드가 어떤 내용인지 라벨링하는 것입니다.

git commit -m "First commit" // "First commit이라는 메시지를 작성하여 commit

commit을 하게되면 staging area의 상태를 스냅샷하게 됩니다. commit한 당시의 코드 상태를 저장해 두는 것입니다. 작성한 코드 중 실수가 있을 경우 복구하는 것 또한 가능하며, 그러기 위해서는 작은 기능별로 commit을 해두는 것이 작업하기 효율적입니다.

commit reset

git reset <되돌릴 커밋>
  • git reset --soft

    과거의 커밋으로 인해 발생한 변경 사항을 제거하지 않고 과거의 커밋으로 HEAD 포인터를 이동시킵니다. 커밋 이력은 삭제하더라도 작업했던 변경내역은 유지하고자 할 때 유용합니다.
  • git reset --hard

    하드 리셋은 과거 이력으로 발생한 모든 수정사항을 깨끗하게 날려버립니다. 이전 커밋의 변경사항을 유지할 필요가 없다면 하드 리셋을 사용하여 온전하게 이전의 커밋 상태로 돌아갈 수 있습니다.
  • git reset --revert

    커밋 이력을 과거로 되돌리는 또 다른 명령어는 git revert 입니다. git revert 는 이전 커밋 이력을 삭제하는 대신에 과거의 커밋으로 발생한 변경사항을 되돌리는 새로운 커밋을 생성합니다.

Remote Repository

Remote Repository는 사용자의 컴퓨터가 아닌 다른 작업 공간에 위치한 저장소를 의미합니다.

우선 원격 저장소를 생성한 후 로컬 저장소와 연결을 시켜주어야 합니다.

// git remote add origin https://github.com/[Github 계정]/[원격 저장소명].git
git remote add origin https://github.com/abc/first.git
// 로컬 저장소와 Github의 abc라는 계정의 first라는 원격 저장소를 연결
git remote -v // 원격 저장소가 연결되었는지 확인

로컬 저장소에 commit해둔 파일을 원격 저장소로 옮길 수 있습니다.

// git push [원격 저장소명] [브런치명]
git push origin master // origin 저장소에 master 브런치로 파일 이동 

[참고]

현재 Github에서는 Repository 생성 시 master라는 브런치 대신 main이라는 브런치를 사용하고 있습니다.

profile
새로운 것을 기록하고 복습하는 공간입니다.

0개의 댓글