Web/Node.js

2024-04-25 git 설치, github 간단 연동

nomad06 2024. 4. 25. 11:28

Git
버전 관리 시스템의 종류

✔​버전 관리
여러 파일을 하나의 버전으로 묶어 관리하는 것

​버전관리 시스템의 종류
1. 클라이언트 - 서버 모델
    - 하나의 중앙 서버로 여러 클라이언트들이 각자 필요한 것만 가져와서 작업하고 다시 중앙 서버로 보내서 통합하는 방식
    - SVN, CVS

2. 분산 모델
    - 하나의 중앙서버가 존재하지만 여러 클라이언트들은 각자의 컴퓨터 저장소에 전체 사본을 가지고 작업하는 방식
    - Git


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

Git 설치
1. 구글에서 'git 설치' 검색
2. 왼쪽 메뉴에서 Downloads 클릭
링크: https://git-scm.com/downloads
3. 링크 속 모니터에 있는 다운로드 버튼을 클릭
4. 64-bit Git for Windows Setup 클릭 후 다운로드 및 설치 (기본 설정으로 설치, next만 누르면 됨)



설치 확인 
Window창 누르면 Git 폴더 - Git Bash가 나온다. (검색가능)
git - git bash

    git --version 




Git 명령어
1. 프로젝트 디렉토리 내에 "로컬 저장소"(숨김 폴더)를 생성
- 원하는 프로젝트 위치로 이동 후 "git init"를 실행

    cd C:/Hee/KDT3/GIT/project/

이동

    git init

"git init"를 실행

 

 

 

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

    git add index.html

 

 

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

    git commit -m "index.html 커밋"

 

 

✔ 만약 명령 프롬프트에서 아래와 같은 오류가 발생하는 경우 (작성자 알 수 없음 오류!)

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 config --global user.email "이메일 주소"
    git config --global user.name "이름"


확인
    git config user.email
    git config user.name


이메일 또는 이름을 잘못 입력한 경우 등록과 동일하게 진행 
    git config --global user.email "변경할 이메일 주소"
    git config --global user.name "변경할 이름"

 

 

4. 로그 확인하기

    git log

 

 

5. README.md 만들기
- 깃허브에 업로드시 저장소 메인 설명글로 사용
- 마크다운으로 작성

    제목
        #       제목 <h1></h1>
        ##      제목 <h2></h2>
        ~
        ######  제목 <h6></h6>

    강조
        볼드체: **볼드체**
        이텔릭체: *이텔릭체* 또는 _이텔릭체_
        이텔릭체와 볼드체를 동시: **_이탤릭체와 볼드체를 동시_**
        취소선: ~~취소선~~
        <ul>밑줄</ul>

    목록
        순서가 있는 목록
            1. 김사과
            2. 반하나
        
        순서가 없는 목록
            - 김사과
            - 반하나
            또는
            * 김사과
            * 반하나
        
    링크
        [클릭할 문자열](URL)
        예) [구글로 가기](https://google.com)

    코드 작성

            ```
                프로그램 코드 작성
                ...
            ```

 

 

6. 여러 파일을 함께 선택하기
- stage에 현재 디렉토리에 있는 변화된 모든 파일을 선택
    git add .

 

 

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

    git commit -m "현재 디렉토리에 있는 모든 변경된 파일을 처음 커밋"

 

 

깃허브(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

 

- 새로운 래파토리 생성하기
오른쪽 + (플러스) 클릭 -> New repositoty 선택

 

- 래파토리 이름과 내용 입력

- repository 생성 완료!

 

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

    git remote add origin https://github.com/IHS618/test.git
    git remote add origin1 https://github.com/IHS618/test1.git
                            --------
                           이름 
    ...


    확인하기
    git remote -v


주소 삭제하기
    git remote remove origin
                                  -------
                                   이름


9. 생성한 커밋(버전들)을 github로 전송(push)
- 원격 저장소에 업로드하여 다른 사용자와 커밋을 공유

    git push -u origin master 
                 ----
      u: 업스트림( upstring): 격 저장소와 로컬 브렌치가 추적하는 브렌치를 의미, 기본적으로 origin/master 브랜치를 추적함

 

 

10. Git Repository Clone
- Repository를 로컬 시스템에 복제하는 방법
- 지금까지 모든 Repository의 히스토리가 포함

    이동후: cd C:/Hee/KDT3/Git/new_project



    git clone git주소   (폴더를 생성)
    git clone git주소 . (폴더를 생성하지 않음)

    git clone https://github.com/IHS618/test.git .

들어갈 주소



11. 다른 사람과의 협업
- 원하는 repository에서 settings -> 왼쪽 colaborators 선택 -> add people 클릭 -> 이름 또는 이메일을 추가  -> 초대받은 계정의 메일에서 수락

 

​12. Git Repository Fork
- 하나의 repository를 다른 계정(혹은 네임스페이스)으로 복사
- Git 명령어가 아닌 github에서 제공
- 다른 사람의 github 계정 Repository에서 fork를 눌러 내 계정 repository로 복사

 

 

13. pull
원격저장소에서 fetch 명령어로 가져온 후 merge까지 한번에 실행하는 명령  // 변경 후 충돌나면 알려주고 합쳐줌 

    git pull origin 

 

14. fetch
- 원격저장소에서 소스를 가져오기
- merge를 사용하지 않음   // 변경 후 충돌나면 합쳐주지 않음

    git fetch origin

 

 

15. branch
- 작업에 대한 가지
- 큰 줄기(master)에 영향을 주지 않고 가지에서만 별도로 작업을 할 수 있음
- 브랜치를 사용하여 저장소의 메인 분기에 영향을 미치지 않고 여러 기능이나 버그 수정을 동시에 수행할 수 있음

    git checkout -b 브렌치명 

 

 

16. Pull Request(PR)​
- 다른 작업자가 push를 했으니 해당 자료를 가져가도록 당기기를 요청
- PR은 저장소에 대한 변경 사항을 제안하고 다른 개발자와 협업하는 방법
- 코드 변경을 제안하고 검토하며 저장소의 브랜치를 병합하는데 사용

'Web > Node.js' 카테고리의 다른 글

2024-04-29 리팩토링  (0) 2024.04.29
2024-04-26 Project tweets  (0) 2024.04.26
2024-04-25  (0) 2024.04.25
2024-04-24 버퍼 스트림, pipe, 탬플릿, REST  (0) 2024.04.24
2024-04-24 파일 입출력  (0) 2024.04.24