CiCd-DevOps

Mac M1 에서 Github 시작하기

KoTiv 2022. 2. 11. 10:49
반응형
SMALL

Mac M1 에서 Github를 시작하기 전에....

Git은 컴퓨터 파일의 변경사항을 추적하고 여러 사용자들 간 파일의 작업을 조율하기 위한 분산형 버전관리 시스템이다. 소프트웨어 개발에 있어 소스 코드 관리에 주로 사용하며 어떤 집합들의 파일의 변경사항을 지속적으로 추적하기위해 사용할 수 있다. 즉 소스 코드의 형상관리를 위해 사용되는 툴이라고 볼 수 있다.

 

그렇기 때문에 깃은 소스코드를 따로 주고 받을 필요 없이 Git을 사용하여 하나의 프로젝트 구성에 있는 같은 파일을 여러 사람이 동시에 작업하는 병렬 개발 및 같은 파일의 각각의 다른 버전을 저장하는 것이 가능하다는것을 가장 큰 장점으로 볼 수 있다.

 

Github는 분산 버전 관리 툴인 깃을 사용하는 프로젝트를 지원하는 웹호스팅 서비스로 영리목적과 오픈소스를 위한 무상서비스를 모두 제공하는 서비스이다. 즉 버전 관리와 협업을 위한 코드 웹 호스팅 플랫폼으로 볼 수 있다.

 

  • 깃은 소프트웨어 개발시 소스 코드를 효과적으로 관리 할 수 있는 무료, 공개 소프트웨어이다.
  • 깃은 프로젝트 폴더 내에서 작업을 기록하고, 버전 관리를 통하여 체계적인 개발이 가능하도록 한다.

Github 용어정리 

1. Repository : 저장소 / 이름 그대로 파일이나 폴더를 저장해두는 저장소.

2. Commit : 파일 추가 , 변경내용을 저장소(Repository)에 저장하는 일련의 작업.

3. Push : 추가 , 변경 내용을 원격 저장소에 업로드 하는 일련의 작업.

4. Branch : 여러 인원이 하나의 프로젝트에서 작업시, 메인 프로젝트의 브렌치를 따와서(Branch off)하여 , 자신이 변경하고 싶은 자신만의 버전을 생성. 작업완료 후 프로젝트 메인 디렉토리인 Master에 브랜치를 다시 Merge하는 방식. 즉 새코드의 테스트 혹은 새 기능을 넣어서 사용해 보기 위해 사용할 수 있는 따로 떨어진 독립적인 Commit를 말하게 된다.

5. Master Branch : 새 프로젝트를 만들 때 마다 생성되는 기본 브랜치, 작업이 최종적으로 마무리되는 브랜치로 가장 메인이 되는 브랜치이다. 

6. Version Control : 기본적으로 깃이 서비스되도록 고안된 목적으로 프로젝트 히스토리에 대한 모든 시점의 스냅삿을 유지하는 기능이다.

7. wiki : 링크들간 연결해 간단한 웹페이지를 만드는 방식으로 . 프로젝트 문서작성에 사용.

8. clone : repository를 사용자 컴퓨터로 복사하는 과정.

9. fork : 상대방의 오픈소스를 직접 변경하여 자신의 계정에 그프로젝트의 복사본을 만든다음 수정하는 행위.


Git 주요 명령어 정리 

git init:

깃 저장소를 초기화

저장소나 디렉토리 안에서 이 명령을 실행하기 전까지는 그냥 일반 폴더이다. 이것을 입력한 후에야 추가적인 깃 명령어들을 줄 수 있다.

 

git config:

“configure”의 준말, 처음에 깃을 설정할 때 가장 유용

 

git help: 

커맨드 라인에 이걸 타이핑하면 21개의 가장 많이 사용하는 깃 명령어들이 나타난다.

“git help init”이나 다른 용어를 타이핑하여 특정 깃 명령어를 사용하고 설정하는 법을 이해할 수 있다.

 

git status: 

저장소 상태를 체크.

어떤 파일이 저장소 안에 있는지, 커밋이 필요한 변경사항이 있는지, 현재 저장소의 어떤 브랜치에서 작업하고 있는지 등 볼 수 있다.

 

git add: 

이 명령이 저장소에 새 파일들을 추가하진 않는 대신, 깃이 새 파일들을 지켜보게 한다.

파일을 추가하면, 깃의 저장소 “스냅샷”에 포함된다.

 

git commit: 

깃의 가장 중요한 명령어.

어떤 변경사항이라도 만든 후, 저장소의 “스냅샷”을 찍기 위해 이것을 입력.

보통 “git commit -m “Message hear.” 형식으로 사용한다. -m은 명령어의 그 다음 부분을 메시지로 읽어야 한다는 것을 말한다.

 

git branch: 

이 명령어는 새로운 브랜치를 만들고, 자신만의 변경사항과 파일 추가 등의 커밋 타임라인을 만든다.

새 브랜치를 “cats”로 부르고 싶으면, git branch cats를 타이핑.

 

git checkout: 

현재 위치하고 있지 않은 저장소를 “체크아웃”할 수 있다.

이것은 체크하길 원하는 저장소로 옮겨가게 해주는 탐색 명령이다.

master 브랜치를 들여다 보고 싶으면, git checkout master를 사용할 수 있고, git checkout cats로 또 다른 브랜치를 들여다 볼 수 있다.

 

git merge: 

브랜치에서 작업을 끝내고, 모든 협업자가 볼 수 있는 master 브랜치로 병합할 수 있다.

git merge cats는 “cats” 브랜치에서 만든 모든 변경사항을 master로 추가한다.

 

git push: 

로컬 컴퓨터에서 작업하고 당신의 커밋을 깃허브에서 온라인으로도 볼 수 있기를 원한다면, 이 명령어로 깃허브에 변경사항을 “push”한다.

 

git pull: 

로컬 컴퓨터에서 작업할 때, 작업하고 있는 저장소의 최신 버전을 원하면, 이 명령어로 깃허브로부터 변경사항을 다운로드한다(“pull”).


Mac M1 에서 Git/Github 시작하기.(설치편)

Mac M1에서 Git설치를 진행하기전 Homebrew를 우선 설치 해야한다. Homebrew에 대한 설치방법 및 Git설치방법은 간략하게 설명하도록 하겠다.

 

1. Homebrew 설치하기

1.1. Terminal 열기

1.2. 아래의 설치명령어 Terminal상에 붙여놓고 Homebrew 설치진행.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

1.3. brew help 명령어를 통하여 homebrew가 제대로 설치됐는지 확인

1.4. zsh: command not found : brew 에러시 아래의 명령어 입력

eval $(/opt/homebrew/bin/brew shellenv

1.5 그외 오류 해결 방법

 

# We'll be installing Homebrew in the /opt directory.

$ cd /opt

# Create a directory for Homebrew. This requires root permissions.

$ sudo mkdir homebrew

# Make us the owner of the directory so that we no longer require root permissions.

$ sudo chown -R $(whoami) /opt/homebrew

# Download and unzip Homebrew. This command can be found at https://docs.brew.sh/Installation.

$ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

 

# Add the Homebrew bin directory to the PATH. If you don't use zsh, you'll need to do this yourself.

$ echo "export PATH=/opt/homebrew/bin:$PATH" >> ~/.zshrc


 

2. Git설치

2.1 Terminal 열기 

2.2 아래의 설치명령어를 Terminal 상에 붙여놓고 Git 설치 진행

brew install git

2.3 설치 진행후 아래의 명령어를 통하여 설치 버전 확인하기 

git --version

2.4 위의 설치버전이 정상적으로 출력되면 정상 설치완료.


Mac에서 Git/Github 시작하기.(설정편)

위에서 Git에 대한 정의 및 용어 그리고 명령어에 대하여 간략하게 정리해보았다 이제 Mac에서 Git/Github를 사용하기 위하여 Git/Github을 설치하고 설정하는 방법을 알아보도록하자.

 

1. Homebrew와 Git을 Mac M1 Terminal에 설치를 진행하였다면 Git의 Config를 설정하도록 해보자.

 

2. 우선 https://github.com 에 접속하여 1. 계정을 생성한 후 생성한 ID 인 Email과 Password를 기억하도록 한다.

 

3. Git을 이미 위에서 Mac에 설치를 완료 하였기때문에 Git초기설 정을 진행해본다

git config --global user.name "Your Name Here" 
git config --global user.email "your_email@youremail.com"
Your Name과 Your_Email에 2에서 생성한 이메일과 개인닉네임을 써서 명령창어를 통하여 Git을 초기설정을 진행한다.

 

4. 링크 https://github.com에서 생성한 아이디에 접속하여 아래의 그림처럼 New를 클릭하여 Repository를 생성한다.

Repository는 위에서 말했듯 저장소의 개념으로 일종의 폴더로 생각하면 된다.

※ Public -> 무료 (모든 사람에게 코드를 공개) , Private -> 유료 !!! -> (원하는 사람에게만 코드 공개)

※ 밑에 있는 체크박스 3개는 무시해도 좋다. 

 

5. Repository를 생성하게 되면 아래의 Reposirtoy에 대한 Command line 명령어가 생성되는데 해당 박스에 대한 절차를 따라간다.

 

6. 절차를 따라가기위해 Mac 의 Terminal을 열어준 후 새로운 디렉토리를 생성하고 mkdir new_git_project . 해당 디렉토리에서 위의 절차를 따라가자

 

7. 새로운 디렉토리에서 git init 명령어를 입력 위의 명령어 정리를 살펴보면 git init 은 깃 저장소를 초기화하는 명령어로 

해당 디렉토리가 로컬 git 저장소라고 알려주는 명령어이다.

 

8. git init을 해주었으면 git add .을 입력하여 해당 디렉토리 안의 모든 수정된 파일을 올린다 . 만약 모두 올리기 싫다면 git add filename을 해주면 된다.

 

9. git commit -m "first commit"을 터미널에 입력한다. commit은 위에서 정리한것과 마찬가지로 수정된 모든 사항을 적용하겠다는 의미로 해석하면 된다. 

※ "first commit" 큰따옴표 안의 내용은 "~한 작업을 수정함"과같은 명확한 메세지를 입력해주어도 상관없다. (다른 타인이 확인해볼 수 있도록 )

 

※ Commit은 습관을 길러 Command +z 하는 작업의 단위로 Commit 하도록 트레이닝 하도록 하자.

 

10. Commit이후 git remote add origin https://github.com/JungHocheul/colab_test.git입력하여 뒤의 origin 뒤의 링크는 git페이지의 자신의 주소가 나와있는 커맨드라인으로 로컬 저장소와 git홈페이지를 연결해주는 작업이다.

git remote add origin https://github.com/JungHocheul/colab_test.git

 

11. 마지막으로 git push -u orgin master를 입력하면 Git repository로 파일이 옮겨지는 마무리 작업을 진행하게 된다.

 

12. 이제 Git의 나의 Repository로 가서 commit이 잘 됐는지 확인하여 본다면. Repository안에 내가 Commit하여 Push한 파일이 업데이트 되어있는것을 확인해 볼 수 있을 것이다.

 

PS.개인엑세스 토큰 생성방법

2021. 08.13 부터 Github 작업은 Git 작업을 인증할 때 비밀번호 대신 토큰을 사용하게 변경했다.

이에따라 PAT(Personal Access Token)을 추가 해야 한다.

 

1. Github 로그인

2. 계정 Setting 클릭

3. Developer Settings 클릭

4. Personal Access Tokens -> new Generate token 클릭

5. Note, Expiration, Select Scopes등 필수 정보 입력 후 ,토큰생성 버튼 클릭.

6. 토큰 저장 및 인증시 사용

반응형
LIST