티스토리 뷰

기타

[Git] Github 시작하기

rimo (리모) 2023. 10. 31. 17:11

 

 

Github에 관한 내용을 다룹니다.

 

 


 

 

+ 명령어 미리 보기

더보기
# 초기화하기
git init

# 추가할 파일 더하기 (.의 경우는 해당 폴더에있는 파일 전부를 선택)
git add .
git add 파일명

# 상태 확인
git status

# 히스토리 만들기 -m 옵션으로 커밋메시지 작성
git commit -m "커밋메시지"

# Github repository를 로컬 프로젝트랑 연결
git remote add origin 저장할 깃허브 레포지토리 URL 입력

# 연결상태 확인
git remote -v

# 마스터 브랜치로 업로드
git push origin master



# gitclone
git clone 주소 폴더명

# 브랜치 생성
git checkout -b 브랜치이름

# pull
git pull origin master

 

 

Github란?

 

개발자라면 한 번쯤은 들어봤고, 사용해봐야 할 것 같은 깃허브(Github). 무엇이고 왜 사용되는 걸까요?

 

먼저 Git이 무엇인가에 대해 알 필요가 있습니다. 코드를 작성하다 보면 편집한 파일들을 되돌리고 싶을 때가 있습니다. 이때 이전 코드로 가장 쉽게 복원하는 방법은 파일들의 복사본을 저장해 두고 다시 불러오는 방법일 것입니다. 하지만 이를 사람이 일일이 폴더와 이름을 붙여가며 복사하는 일은 굉장히 번거로운 일입니다. 실수를 할 수도 있고, 파일의 어떤 부분이 변경된지도 파악하기 어렵기 때문입니다. 프로그래밍 같이 파일들이 많고, 협업이 필수적인 경우 이러한 문제점은 더욱 두들어 집니다. 

 

 

Git은 이러한 문제들을 해결하기 위해 만들어진 분산형 버전 관리 시스템(VCS : Version Control System)입니다. VCS를 사용하면 각 파일을 이전 상태로 되돌릴 수도 있고, 아예 프로젝트를 통째로 이전 상태로 되돌리는 것이 가능합니다. 또 누가 어떤 코드를 언제 작성했는지 추적할 수 있고 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있습니다. 무엇보다 이런 일련의 작업들을 큰 어려움 없이 이용할 수 있는 것이 큰 장점입니다. 

 

 

그럼 Github는 무엇일까요? Git을 이용하여 파일들을 관리할 때 파일의 내용과 버전 정보 등을 저장하는 공간(Git repository)을 저장소라고 합니다, 이때 가장 대중적으로 쓰이는 서비스형 저장소가 바로 Github입니다. 아래 공식 문서에서 저장 원리와 더 자세한 내용들을 살펴볼 수 있습니다.

 

 

 

Git - Book

 

git-scm.com

 

 

 


 

 

 

Git 설치 및 Github 가입하기

 

Github에 코드를 업로드 하기 위해선 Git을 설치하고 Github에 가입해야 합니다. 먼저 Git을 다운로드하여 설치합니다. 

 

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

 

 

 

 

 

그리고 이어서 Github에 가입합니다. 둘 다 어렵지 않게 진행할 수 있습니다.

 

 

GitHub: Where the world builds software

GitHub is where over 83 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 feat...

github.com

 

 

 

 

 

 

 

 

Git 설치 후 먼저 사용자 정보를 config 파일에 등록해야 합니다. 오른쪽 마우스를 누르고 Git Bash Here을 선택합니다.

 

 

 

 

 

 

--global 옵션으로 진행해 현재 시스템에서 모두 이정보를 사용해 커밋하도록 등록하겠습니다. 아래 명령어를 입력합니다. 

 

git config --global user.name "your_name"

git config --global user.email "your_email"

git config --list

 

 

 

 

 

+ 만약 계정을 변경하였다면  기존의 로그인 정보를 삭제한 뒤 재인증이 필요합니다. 

 

 

 

[Github] Git Bash에서 로그인한 계정 변경하는 법

git을 다룰 때 계정을 변경해야 할 때가 있다. 본인은 처음 git을 다룰 때 여러 계정을 생성했었고 해당 과정들로 인해 몇몇 문제가 발생했었다. 그중에서 git bash에서 로그인한 계정을 변경했고 해

hoohaha.tistory.com

 

 


 

 

Github에 코드 업로드 하기

이제 Github에 repository를 만들고 코드를 업로드해보겠습니다. VS Code를 사용합니다.

 

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

 

 

+ 주요 용어

- repository (저장소) : Git으로 버전 관리하는 디렉토리
- local repository (로컬 저장소) :  작업자의 개발 환경(PC)에 설정된 Git 저장소
- remote repository (원격 저장소) GitHub 등 외부 서버에 설정된 Git 저장소
- commit : 특정 상태를 기록한 것, 즉 버전을 의미
- branch : 또 다른 작업공간, 분기를 의미
- merge :  병합, 특정 브랜치에서 작업한 내용을 또 다른 브랜치에 적용하는 것을 의미

 

 

 

 

 

 

github 계정 사이드 바에서 [New] 버튼을 선택해 새로운 repository를 생성합니다.  저는 test로 이름 지었습니다.

 

 

 

 

 

 

 

 

아래 [Create repository] 버튼을 선택하면 repository가 생성되며 다음과 같은 화면을 볼 수 있습니다. [... or create a new repository on the command line]에 나와있는 가이드대로 따라가시면 쉽게 업로드를 할 수 있습니다. 

 

 

 

 

 

 

 

 

VS Code에서 커밋용 폴더를 생성한 뒤 터미널을 열어줍니다. 

 

 

 

 

 

 

 

 

그리고 테스트할 파일을 작성해 줍니다. 저는 html문서를 아래와 같이 작성해 첫 번째 커밋을 실행해 보겠습니다. 

 

 

 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>TEST!!</title>
    </head>
    <body>
        <h1>Thist is Test Page!</h1>
        <p>my first git push</p>
    </body>
</html>

 

 

 

 

 

 

그리고 터미널에서 아래 명령어를 입력해 줍니다. test.html이 Git의 관리하에 들어가며, 새로운 파일인 것과 커밋이 아직 되지 않았다는 메시지를 볼 수 있습니다.

 

# 초기화하기
git init

# 추가할 파일 더하기 (.의 경우는 해당 폴더에있는 파일 전부를 선택)
git add .
git add 파일명

# 상태 확인
git status

 

 

 

 

 

 

 

 

 test.html를 복사해 add 명령어를 실행하지 않고 비교해 보았습니다. 기존의 문서와 달리 untracked files로 나타나며 Git의 관리하에 있지 않은 파일목록으로 분류되는 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

 

 

push

이제 아래 명령어를 실행해 업로드를 진행해 보겠습니다. 

 

# 히스토리 만들기 -m 옵션으로 커밋메시지 작성
git commit -m "커밋메시지"

# Github repository를 로컬 프로젝트랑 연결
git remote add origin 저장할 깃허브 레포지토리 URL 입력

# 연결상태 확인
git remote -v

# 마스터 브랜치로 업로드
git push origin master

 

 

 

 

 

 

 

 

 

그리고 다시 repository를 확인해보면 아래와 같이 업로드된 코드를 확인할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

이제 아래 명령어를 반복하며 해당 파일의 수정된 내용을 업로드할 수 있습니다.

 

# 히스토리 만들기
git commit -m "commit message"

# 업로드
git push origin branch name

 

 

 

 

 

기존 파일을 수정하고 test copy.html도 함께 "second commit"으로 업로드해보겠습니다.

 

 

 

 

 

 

 

 

 

수정된 내용대로 repository가 갱신된 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

 


 

Git clone 

이번에는 올라와 있는 원격 저장소를 복제하여 작업을 한 뒤, 브랜치(branch) 를 생성해 업로드하거나 다른 버전의 소스코드와 합병(merge)하는 방법에 대해 살펴보겠습니다. 

 

 

 

원격 저장소 복제

먼저 다운로드할 repository에 접속해 [코드] 버튼을 선택한 뒤 주소를 복사합니다.

 

 

 

 

 

 

 

그리고 명령어를 입력합니다. 폴더명은 옵션으로 지정하지 않을 시 깃허브 프로젝트의 이름으로 자동으로 생성됩니다.

 

git clone 주소 폴더명

 

 

 

 

 

 

 

 

+ 폴더명을 지정한 경우

 

 

 

 

 

 

 

 

branch 생성

일반적으로 master branch는 통합 브랜치(Integration Branch)로 언제든 배포할 수 있는 안정적인 상태를 유지해야 하기 때문에 버그나 새로운 기능 등 검증이 필요한 작업들은  branch라는 독립적인 작업공간을 생성해 진행하게 됩니다.  이후 branch에서 검증을 마친 코드들이 master 권한을 가진 개발자의 승인 아래 통합 브랜치로 병합되게 됩니다.

 

아래 명령어로 branch를 생성할 수 있습니다.

# 브랜치 생성하기
git checkout -b 브랜치이름

# 브랜치 이동하기
git checkout 브렌치이름

 

 

test 폴더의 파일 내용을 수정한 뒤 branch로 업로드해보겠습니다.

 

 

 

 

 

 

 

 

repository로 돌아오면 다음과 같이 새로운 브렌치에 대한 검토 요청을 확인할 수 있습니다. [Compare & pull request] 버튼을 선택하여 이를 수락할 수 있습니다.

 

 

 

 

 

합병이 완료된 모습입니다.

 

 

 

 

 

 

 

 

 

pull

 

이렇게 master branch가 수정될 경우, 기존 다른 작업을 하고 있던 사용자들 간의 코드 또한 동기화 작업이 필요합니다.  이를 pull이라고 합니다. 아래 명령어로 실행할 수 있습니다. (기존의 작업은 commit 해두어야 합니다)

 

git pull origin master

 

 

변경되지 않은 test2 폴더의 코드를 수정한 뒤 마스터 브랜치와 합병해 보겠습니다. 

 

 

 

같은 행에 내용이 추가되어 Auto merging에 실패한 모습입니다. 이럴 경우에는 개발자가 직접 확인하고 수정한 뒤 커밋해 주면 됩니다. 

 

 

 

 

 

[참고자료]

 

 

Git 명령어 총정리집 (by 코딩알려주는 누나❤) - HackMD

# Git 명령어 총정리집 (by 코딩알려주는 누나❤) ![](https://c.tenor.com/UNTqMDwqh1gAAAAM/hello-hi.gif) 안녕하세요 여러분 :)

hackmd.io

 

 

감사합니다. 

 


공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.

 

'기타' 카테고리의 다른 글

[Docker] 도커 시작하기  (0) 2023.12.08
[Git] .gitignore이란?  (0) 2023.11.03
논문 목차 구성 하기  (0) 2022.12.09
[Git] Github 프로필 만들기  (0) 2022.07.21
REST와 REST API 이해하기  (0) 2022.07.20
댓글
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday