article thumbnail image
Published 2021. 2. 27. 18:28

github.com/woocosmos

 

woocosmos - Overview

woocosmos has 2 repositories available. Follow their code on GitHub.

github.com

 

나의 깃허브 주소.

 


1. 설치

제가 설치한 순서대로 적습니다.

 

1) Git, Github 설치

 

2) Visual Studio Code 설치

   * 맥에서는 보통 Nano 사용

   * BLM 운동으로 'Master' 대신 'Main'으로 바꿔 부르는 움직임이 있다. ('override~' 선택)

   * cit credential manager로 바꾸기

 

3) Github Desktop 설치

 

 

2. Git이란?

Git은 작업물을 분산하고 버전마다 관리할 수 있는 시스템이다.

GitHub는 원격으로 repository(저장소)를 제공해준다.

 

 Git을 쓰면 무엇이 좋은가요?
   - 내 코드를 클라우드에 저장할 수 있음
   - 버전 관리에 용이함
   - 여러명이 메인코드를 가지고 작업할 때 협업에 활용할 수 있음

   - 각종 오픈 소스를 활용할 수 있음

   - pull, review, merge 등 기능

 

 

3. Git 프로세스: Working Directiory / Repository / Staging Index

아래 이미지는 Git의 기본적인 동작 프로세스를 나타낸다.

보관할 자료를 타임캡슐에 넣고 땅에 묻는 과정으로 비유하기도 한다.

 

1) Working Directiory

   - 새 파일을 만들어 작업한다 (보관할 자료)

   - untracked 상태


2) Staging Index

   - 작업물을 add한다 (자료를 타임캡슐에 넣음)

   - tracking 시작


3) Repository

   - 작업물을 commit한다 (타임캡슐을 땅에 묻음)

   - commit마다 버전 저장

 

 

4. 기본 명령어

작업중이던 로컬 폴더로 들어갑니다. 마우스 오른쪽 클릭 후 Git Bash Here

 

저장소 생성하기

git init [프로젝트 이름]

github에 새로운 Repository를 생성합니다.

 

git clone [복사할 저장소 주소]

로컬에 기존 Repository를 복제해옵니다. 해당 Repository의 폴더가 생성됩니다.

 

수정사항 반영하기

cd [작업폴더]

리눅스 명령어를 통해 작업 폴더로 찾아갑니다.

 

git branch [브랜치명]

새로운 브랜치를 생성합니다.

 

git checkout [브랜치명]

해당 브랜치로 들어갑니다.

 

git status

변경된 내용과 현재 상태를 확인합니다.

add 되지 않은 파일

add 된 파일

 

git add .

전부 add합니다.

 

git commit -m '[메세지 내용]'

staging index에 add된 것들을 repository로 commit합니다.

 

git push

commit한 것을 push합니다.

- 에러 발생시 명령어 복붙해 다시 실행

- 새로 뜨는 창에 git 로그인하고, 그 다음 창은 repository 주인 계정으로 로그인

 

 

5. 예제

상황: 로컬에서 진행한 프로젝트 파일을 github 원격저장소에 업로드해야 함

 

1) GitHub에 새 저장소를 생성합니다.

 

2) 로컬 디렉토리에서 마우스 오른쪽 Git Bash

 

3) 다음 순서대로 입력합니다.

   - git init    => 디렉토리에 .git 폴더 생성

   - git add .

   - git commit -m 'init commit'

   - git remote add origin [GitHub 저장소 주소]

   - git push --set-upstream origin main   => error: failed to push some refs to

   - git pull origin main    => fatal: refusing to merge unrelated histories

   - git pull origin main --allow-unrelated-histories

   - git push --set-upstream origin main

   => 업로드 성공

 

복사했습니다!