Git

Kingmo·2022년 3월 14일
0
post-thumbnail

1.Git이란?

Git은 2005년 리누스 토르발스에 의해 개발된 분산 버전관리 시스템으로 컴퓨터 파일의 변경사항을 추적하고, 파일에 대한 여러 사용자들 간의 작업을 조율하는데 사용된다.
특히, 여러명의 개발자가 하나의 프로젝트에 참여할 때, 소스코드를 관리하는 용도로 주로 사용된다.

Git을 사용하여 프로그램을 저장하면, 누가 언제 어떤 글자 또는 코드를 변경했는지 알 수 있다. 또한, 중요한 코드를 실수로 잚못 바꾼 경우 다시 되돌릴 수도 있다.

2. Github

Github는 Git이라는 프로그램으로 저장한 파일들이 실제로 저장되는 장소이다.
따라서, 우리는 작성한 파일들을 Git을 사용하여 Github에 저장한다.

3. Git은 꼭 필요한가?

PPT 발표자료를 만들 때를 생각해보자.

처음에 '발표.ppt'라는 제목의 파일을 만들었다가, 내용이 바뀔 때마다 '발표최종.ppt' 에서 '발표진짜최종.ppt'와 같이 만들어 본 적이 있는가?
이러한 방법으로 파일을 저장하는 것은 어느 것이 가장 최근의 파일인지 알아보기 어렵고, 효율적이지 못하다는 단점이 있다.

또한 개인 ppt가 아닌 팀 프로젝트의 경우는 상대방이 작명한 파일명을 보고 어떤 파일이 최종본인지 알기란 더욱 어렵다.

이런 최종, 진짜 최종과 같은 업데이트 사항을 버전화 하여 관리할 수 있도록 돕는 시스템이 Git이다.

4. Git 기본 용어

용어설명
Repository저장소. 저장소는 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장. 작업자가 변경한 모든 히스토리를 확인 가능.
Working Tree저장소를 어느 한 시점을 바라보는 작업자의 현재 시점.
Staging Area저장소에 커밋하기 전에 커밋을 준비하는 위치.
Commit현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업.
Head현재 작업중인 Branch를 가리킨다.
Branch가지 또는 분기점. 작업을 할때에 현재 상태를 복사하여 ranch에서 작업을 한 후에 완전하다 싶을때 Merge를 하여 작업을 한다.
Merge다른 Branch의 내용을 현재 Branch로 가져와 합치는 작업을 의미한다.

4. Git 기본 명령어

명령어기능
git initgit 하위 디렉토리 생성, 폴더의 최상위에서 명령 실행 -> 새로운 git 저장소 생성
git clone [저장소 경로]기존 소스 코드 다운로드 및 복제
git add <파일명>커밋에 단일 파일의 변경 사항 포함
git add . or *커밋에 모든 파일의 변경 사항 포함
git commit -m "커밋 메세지"커밋 생성(실제 변경사항 확정)
git status파일 상태 확인
git branch브랜치 목록 확인
git branch -b [브랜치 이름]브랜치 생성 -> 이동
git checkout [브랜치 이름]브랜치 이동 ex) git checkout Yana : Yana 브렌치로 이동. ex) git checkout -b 야나 : '야나' 라는 브랜지를 생성 후 야나 브렌치로 이동(생성과 이동 동시에)
git branch -d [브랜치 이름]브랜치 삭제
git push [로컬저장소 이름][브랜치 이름]로컬 저장소의 내용에서 생성된 브랜치로 커밋된 내용을 원격 서버에 업로드
git pull [로컬저장소 이름][브랜치 이름]원격에 저장된 git 프로젝트의 현재 상태를 다운받고 현재 위치한 브랜치로 병합
git log현재 위치한 브랜치 커밋 내용 확인 및 식별자 부여
git fetch origin원격에 저장된 git프로젝트의 현 상태를 다운로드
git stash아직 마무리하지 않은 작업을 스택에 잠시 저장
git stash pop스택에 잠시 저장된 마무리되지 않은 작업을 꺼내옴
git help도움말 기능(가장 많이 사용하는 21개의 깃 명령어 출력). 사용법이 궁금한 명령어에 대해 'git help [궁금한 명령어]'를 타이핑시, 해당 깃 명령어의 설정과 사용에 대한 도움말 출력.
git log커밋 내역 확인
git push로컬 컴퓨터에서 서버로 변경사항을 “push”
git pull서버 저장소로부터 최신 버전을 "pull" (서버 저장소의 데이터를 가져와, 현재 브랜치와 merge). ex) 작업 도중 기존 작업 내용은 유지하면서, 최신 코드로 업테이트 할 때 사용
git merge개별 branch에서 마친 작업을 master branch로 병합.
git remote -v현재 프로젝트에 저장된 리모트 저장소 확인.

git clone을 했는데 node_modules 폴더가 없을 경우

package.json이 있는 경로에서 yarn install을 하면 자동으로 패키지를 다운받고 node_modules 폴더를 생성한다.

서버 프로그램과 포트

yarn dev를 실행하면 localhost:3000으로 서버가 실행된다.
여기서 추가로 서버를 실행하고 싶다면
yarn dev-p 3001(다른포트번호)로 실행하면 된다.

5. 저장소 생성 및 최초 업로드

1) Github에 repository를 생성한다.
2) 터미널에서 프로젝트 경로로 접근하여 git init을 입력하고,
폴더 내 git 저장소를 만들어 준다.
3) 이후 프로젝트 폴더와 원격저장소(git repository)를 git remote add origin (나의 저장소 주소) 연결 시켜준다.
4) 이후 git저장소에 커밋하여 준다.

  git add .
  git commit -m "커밋 메세지"
  git push origin master

6. 저장소에 업데이트 하기

git init
// 현재 프로젝트에 저장된 리모트 저장소를 확인한다.
git remote -v 
// 리모트 저장소가 없다면 아래와 같이 등록하여 준다.
git remote add origin [git주소]

// 최상위 폴더가 아닌 하위 폴더내에 .git파일이 있으면
// 충돌이 발생하여 정상 업로드가 안될 수 있기 때문에
// 폴더를 순회하며 .git파일을 삭제해 준다.
ls -al
rm -rf .git

// 파일 상태를 확인하고 업데이트 해준다.
git status
git add .
git commit -m "첫 잔디"
// 로컬 저장소에서 서버로 보내준다.
git push origin master

7. 저장소에서 가져오기(clone)

git clone [저장소_주소]
// package.json이 위치한 폴더에서
yarn install

8. git fork와 git clone의 차이

fork : 다른 사람의 원격 저장소에서 내 [원격 저장소]로 가져오는 것
clone : 어떤 원격 저장소를 내 [지역 저장소]로 가져오는것
[로컬 저장소]는 내 컴퓨터의 저장소이고
[원격 저장소]는 내 컴퓨터에서 github로 push하는 저장소이다.

fork로 내 원격저장소에 복제한 다음 받아온 저장소에 pull request를 보냈을 때
원본의 주인은 pull request한 내용을 보고 그것이 맘에 들면 본인의 저장소에 반영할 수 있다.

profile
Developer

0개의 댓글