elevne's Study Note

Git/GitHub (1: Start) 본문

ETC/Git

Git/GitHub (1: Start)

elevne 2023. 5. 2. 17:20

Git 은 분산형 버전 관리 시스템이며 GitHub 은 Git 프로젝트 호스팅 서비스이다. 분산형 버전 관리 시스템에서 서버는 각 개발자 (클라이언트) 의 소스 코드와 버전 이력을 동기화해준다. 개발자는 최신 버전의 소스 뿐만 아니라 모든 버전 이력을 얻을 수 있는 것이다.

 

 

 

 

 

 

어플리케이션들은 배포 전후로 계속 업데이트된다. 지속적으로 일어나는 업데이트를 체계적으로 관리할 수 있게끔 해주는 버전 관리 서비스가 필요하다. 또 한 프로젝트에서 여러 개발자가 동시에 코드를 수정하고 덮어쓰면 충돌이 발생하기도 하는데, 이러한 상황을 관리해주는 서비스도 필요하다.

 

 

위와 같은 이유로 Git/GitHub 가 사용된다. Git 을 이용하면 이력 기록 및 추적이 상세하게 가능하며 소스 코드를 분산 저장할 수 있다. 또 Git 은 하나의 소스코드 파일에 대한 여러 변경 이력을 통합하는 기능도 제공한다는 강점이 있다. GitHub 은 Git 프로젝트를 지원하는 호스팅 서비스이다. Git 을 이용하는 원격 저장소 서버를 별도로 구축할 수도 있지만, GitHub 을 대신 사용할 수 있는 것이다. Public/Private 저장소를 분리하여 제공하며 각종 API 를 사용해볼 수도 있다.

 

 

 

가장 처음으로, 내 컴퓨터에 Git 지역 저장소를 생성하고 커밋을 만들어보았다. 폴더를 하나 생성하고 Git Bash 에서 해당 폴더로 cd 한 후 아래 명령어를 실행한다.

 

 

 

git init

 

 

result

 

 

 

.git 폴더가 생성되었으니 이제 이 프로젝트는 Git 으로 소스코드 버전 관리가 된다고 이해하면 된다. 그 다음으로는 git config 명령으로 Git 지역 저장소에 사용자를 등록한다.

 

 

 

git config user.name "github_name"
git config user.email "github_email"

 

 

 

위와 같이 등록을 해준 후 에디터에서 Commit 을 해볼 README.md 파일을 하나 아주 간단하게, 아무렇게나 작성한다. 그 후 git add 명령어를 통해 README.md 파일을 Commit 에 포함될 파일로 등록하고 Commit 을 진행한다.

 

 

 

git add README.md

git commit -m "comment..."

 

 

 

-m 옵션은 생성하는 Commit 의 메시지를 작성하는 옵션이다. git log 를 통해서 Commit 이 잘 생성되었는지 확인해볼 수 있다.

 

 

 

git log

 

 

result

 

 

 

지역 저장소에 생성한 커밋을 원격 저장소에 등록해보았다. 우선 Github 에서 새로운 Repository 를 생성한다. 그 다음 아래 명령을 실행해준다.

 

 

 

git remote add origin "https://github.com/repository주소"

git push origin main

 

 

 

git remote add 를 통해서 원격 저장소의 주소를 지역 저장소에 알려준다. 그 후 push 를 통해 커밋을 원격 저장소에 등록한다.

 

 

여기까지 진행해주면 본인의 Github Repository 에 커밋이 등록된 것을 확인할 수 있다.

 

 

 

 

오류 >> error: src refspec master does not match any >> 해당 에러가 발생할 수 있는데, 이는 Github 에서 pull 없이 push 를 진행할 경우 기존 내용을 삭제하는 등의 문제가 생길 수 있어 발생시키는 에러라고 한다. 해당 에러가 발생하면 새로운 Git repository 를 init 하고 다시 push 하면 된다고 한다. 

 

 

 

 

 

 

Reference:

박미정의 깃&깃허브 입문

https://junheejang.tistory.com/221

'ETC > Git' 카테고리의 다른 글

Git/GitHub (3: Branch 관리)  (0) 2023.07.08
Git/GitHub (2: 기본 명령어 (2))  (0) 2023.07.07
Git/GitHub (2: 기본 명령어 (1))  (0) 2023.05.12