Git & Git Hub

[Git] Git과 Git의 명령어

거북이07 2023. 11. 1. 17:33

Git 이란?

Git이란 버전관리 시스템의 종류를 뜻한다.

여러명의 개발자가 하나의 프로젝트를 진행하고있을 때 소스 코드를 관리하는데 주로 사용된다.

 

버전 관리 시스템의 종류

  1. 클라이언트(서버 모델)
    • 하나의 중앙 서버로 여러 클라이언트들이 각자 필요한것만 가져와서 작업을 하고 다시 중앙 서버로 보내서 통합하는 방식
    • SVN, CVS
  2. 분산모델
    • 하나의 중앙 서버가 존재하지만, 여러 클라이언트들은 각자의 컴퓨터 저장소에 전체 사본을 가지고 작업하는 방식
    • Git

 

Git의 장점

  1. 동시에 작업하는 사람들과 소스코드를 주고받을 필요가 없다.
  2. 같은 파일을 여러명이 동시에 병렬 개발이 가능하다.
  3. 변동 과정을 체계적으로 관리할 수 있고, 언제든지 지난 시점의 버전으로 되돌릴 수 있다.
  4. 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있고, 중앙 서버의 데이터가 유실되어도 다시 복구가 가능하다

 

Git 설치 방법

Git 설치 방법은 굉장히 간단하다

https://git-scm.com/downloads

 

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

위 링크로 접속 후 본인 컴퓨터에 맞는 버전을 다운로드하면 되는데 아래 이미지에 모니터 부분을 보면 내가 어떤 버전을 다운해야하는지 확인할 수 있고 노란색 체크된 부분을 누르면 해당 버전 다운페이지로 이동된다.

 

 링크로 접속 후 파일을 다운받고 실행버튼을 누르면 아래 이미지처럼 Setup 창이 나오는데 딱히 다른걸 만져줄 필요는 없고 다운이 완료될때까지 Next 버튼만 누르면 된다.

Git 설치 버전 확인

git이 정상적으로 설치되었으면 윈도우는 명령프롬프트창(cmd), 맥은 터미널에서

git --version​

위 명령어를 입력하면 설치된 Git 버전을 확인할 수 있다.

 

Git 명령어

1. 프로젝트 디렉토리 내에 로컬 저장소를 생성

 - 원하는 프로젝트 위치로 이동 후 git init를 실행

git init

나는 D드라이브에 테스트 폴더를 만들어서 경로를 D: 드라이브에 있는 gitTest 폴더로 변경해준 후 git init 명령어를 썼다.

명령어를 입력해주면 gitTest안에 git폴더가 생긴것을 확인할 수 있다.

 

2. git 버전 관리할 파일을 선택(stage에 올림)

git add 파일명

 

 

보통 이 과정을 stage에 올린다고 말하는데  Staging Area란 커밋을 하기 위해 git add 명령어로 추가한 파일들이 모여있는 공간을 뜻한다.

 

3. 하나의 버전으로 만들기

git commit -m "메세지"

commit을 하면 버전이 만들어지는데 "메세지" 안에는 변경사항을 알아보기 쉽게 최대한 자세히 쓰는것이 좋다.

이전에 프로젝트를 진행했을때.. 팀원중 한명이 해당 부분을 자세하게 쓰지 않아 확인이 불가능해 불편했던 기억이 있다

 

 

✔ 만약 아래와 같이 에러가 발생하는 경우😂

이 에러는 쉽게 해결할 수 있는 에러이므로 당황하지 말고 해당 에러를 잘 확인 후 에러 메시지대로 진행해 주면 된다.

Author identity unknown

*** Please tell me who you are.

Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'Administrator@DESKTOP-HUJUVSS.(none)')

위 에러는 컴퓨터내에 git email, user가 제대로 등록되지 않는 경우에 발생하는 에러인데

 

git을 처음 사용해보거나 pc를 다시 셋팅했을 경우 최초 commit, push등의 git 관련 작업을 할 때 사용자를 찾을 수 없어 발생하는 에러이다 이런 경우에는 위에 써있는것 처럼

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

사용자의 git 계정 정보를 넣은 후 명령어를 실행하면 정상적으로 작동된다.

 

✔ 이메일 또는 이름을 잘못 입력한 경우(등록할 경우와 동일)

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

등록할때와 같은 방법으로 진행해주면 된다.😊

 

4. 로그 확인하기

git log

 

5. README.md 만들기

사실 README는 Git 명령어는 아니다ㅎㅎ

 

 README.md 란?

깃허브에 업로드  시 저장소 메인에 나오는 설명글이며 해당 설명글은 마크다운으로 작성한다.

 

6. 여러 파일을 한번에 선택

2번과 같은 add 이지만 2번은 한개만 선택해서 올리는 방법이라면 이 방법은 stage에 현재 디렉토리에 있는 변화된 모든 파일을 선택

git add .

 

 

7. 선택된 여러 파일을 커밋

로컬 시스템에서 파일을 수정/생성/삭제하고 원격 저장소에 반영할 파일들을 선별하고(버전을 만드는 것), 파일이 변경될 때 변경 사항은 자동으로 저장되지 않으며 git에게 새 커밋을 생성하여 변경 사항을 저장하도록 지시한다.

git add .

 

8. 로컬 저장소에서 github 저장소 주소를 설정

Git hub(깃 허브)란?

git으로 버전 관리한 코드를 업로드할 수 있는 클라우드 서비스이며 단순히 저장만 하는 것이 아니라 다른 유저들과 함께 코드를 공유하고 온라인으로 하나의 프로젝트를 개발할 수 있게 해준다.

https://github.com/

 

GitHub: Let’s build from here

GitHub is where over 100 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 fea...

github.com

 

설정

"origin" 부분은 다른 이름으로 변경 가능하다.

git remote add origin "깃허브 repositories 주소"

repositories 주소는 해당 repositories로 들어가서 상단 <>code 버튼을 클릭 후 나오는 주소를 복사하면 된다.

 

삭제하기

git remote remove origin

확인하기

git remote -v

 

 

9. 생성한 커밋(버전들)을 깃허브로 전송

원격 저장소에 업로드하여 다른 사용자와 커밋을 공유

git push -u origin master

여기서 -u 를 업스트림이라고 하는데 업스트림이란 원격 저장소와 로컬 브랜치가 추적하는 브랜치를 의미하며 기본적으로 origin/master 브랜치를 추적한다.

 

10. Git Repository Clone

 Repository를 로컬 시스템에 복제하는 방법이며 그냥 단순 파일 복제가 아닌 복제할때까지의 모든  Repository의 히스토리가 포함되어 복제된다.

 

😊 폴더를 생성하고 클론

git clone git주소

 

😊 폴더를 생성하지 않고 클론

git clone git주소 .

 

11. Git Repository Fork

하나의 Repository를 다른 계정(또는 네임스페이스)으로 복사하며 fork는 Git 명령어가 아닌 github에서 제공하는 기능이다.

 

다른 사람의 github 계정 Repository에서 Fork를 눌러 내 계정 Repository로 복사하면 된다.

 

 

 

12. pull

원격저장소에서 fetch 명령어로 가져온 후  merge까지  한번에 실행하는 명령

git pull origin

 

13. fetch

원격저장소에서 소스를 가져오며 merge를 사용하지 않는다.

git fetch origin

 

14. branch

작업에 대한 가지, 큰 줄기는 master라고 하며 브랜치를 사용하여 저장소의 메인 분기에 영향을 미치지 않고 여러 기능이나 버그 수정을 동시에 수행할 수 있다.

git checkout 브랜치명