본문 바로가기
Web/Node.js

09. git 설치, github 간단 연동

by 사라리24 2024. 4. 25.
SMALL

1. 버전관리

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

 

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

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

 

2. Git

  버전 관리 시스템의 일종

 

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

 

  • Git 설치
더보기

1. Git 사이트 접속: https://git-scm.com/downloads

2. 64-bit Windows Setup 클릭 후 다운로드 및 설치

3. 기본 설정으로 설치, next만 누르면 됨

4. Window창 누르면 Git 폴더 - Git Bash가 나온다.

* git --version를 입력하여 설치 버전 확인

 

3. Git  명령어

  

 

1. 프로젝트 디렉토리 내에 로컬 저장소(숨김 폴더)를 생성

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

 

2. git 버전을 관리할 파일을 선택

 
 
         git add 파일명 (예시: index.html) // stage에 올림

 

 

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

- 로컬 시스템에서 파일을 수정/생성/삭제한 원격 저장소에 반영할 파일들을 선별하는 것

- 파일이 변경될 때 변경사항을 저장되지 않음

- git에게 새 커밋을 생성하여 변경 사항을 저장하도록 지시

  
 
     git commit -"index.html 커밋" // -m "위 내용은 마음대로 바꿀 수 있습니다."
  
 
정상실행

* 오류

 

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

     아래 명령어를 입력하여 해결!

  
 
            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 "변경할 이름"
  
 

 

⬆  위 방법으로 정해주고 다시 입력하면... 오류가 발생하지 않는다.

  
 
            C:\폴더명\Git\Day01>git commit -m "index.html 커밋"
            [master (root-commit) 62a0de8index.html의  커밋
            1 file changed12 insertions(+)
            create mode 100644 index.html
  
 
 

 

4. 로그 확인하기

 
 
       git log
 
 

 

5. README.md 만들기

- 깃허브에 업로드 시 저장소 메인 설명글로 사용

- 마크다운으로 작성


<양식>
  • 제목
    • # 제목(h1)
    • ## 제목(h2)
    • ...
    • ###### 제목(h3)

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

  • 목록
    • 순서가 필요할 때: 1. 순서가 필요한 목록
    • 순서가 필요하지 않을 때: - 순서가 필요하지 않은 목록
  • 링크
  • 코드 작성
```
프로그램 코드 작성
...
```
 

 

 

6. 여러 파일을 함께 선택하기

- stage에 현재 디렉토리에 있는 변화된 모든 파일을 선택

  
 
       git add .
  
 

 

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

- 로컬 시스템에서 파일을 수정/생성/삭제하고 원격 저장소에 반영할 파일들을 선별하는 것(버전 만드는 것)

- 파일이 변경될 때 변경 사항은 자동으로 저장되지 않음

- git에게 새 커밋을 생성하여 변경 사항을 저장하도록 지시

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



3개가 변경되었음

git log (내꺼)



git log (쌤꺼)

 

* 깃허브

- 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/깃허브링크1
         git remote add origin2 https://github.com/깃허브링크2
 
 
       (예시)
         /test.git ** 
          git remote add origin1 https://github.com/깃허브링크크/test1.git: 맘대로 바꿔도 됨

         (예시)
         git remote add origin https://github.com/Leesarah721/test.git

  

* 주소복사



* 주소입력



 

  • 확인하기
  
 
        git remote -v
 
 

 

  • 주소 삭제하기
 
 
      git remote remove origin https://github.com/깃허브링크
 
  
 

 


9. 생성한 커밋(버전들)을 github로 전송(push)

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

 
 
       git push -u origin master (로그에 찍힌 Head->'계정명')

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

 


* 깃허브 로그인해주기





* 다시 입력하면 실행됨

 

 

10. Git Repository Clone

- Repository를 로컬 시스템에 복제하는 방법

- 지금까지 모든 Repository의 히스토리가 포함

더보기

 

 

*경로변경

git clone git주소 (폴더를 생성)

  
 
        예) git clone https://git주소
  
 

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

 
 
       예) git clone https://git 주소
 
  

 







 

** 다른 사람과 연결

더보기

 

 

 

 

11. 다른 사람과의 협업 (명령어X) 

- 원하는 repository에서 settings -> 왼쪽 colaborators 선택 -> add people 클릭 -> 이름 또는 이메일을 추가 -> 초대받은 계정의 메일에서 수락

- 생성한 커밋(버전들)을 다른사람의 github로 전송(push)

- 수정해서 스테이지에 올리고 (git add . 입력 ) 커밋 (git commit -m "index.html, style.css, readme.md 수정")

 

 

12. Git Repository Fork

- 하나의 repository를 다른 계정(혹은 네임스페이스)으로 복사

- Git 명령어가 아닌 github에서 제공

- 다른 사람의 github 계정 Repository에서 fork를 눌러 내 계정 repository로 복사









 

13. pull

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

업데이트로 push                      /                          업데이트 한 내요 받아오기 pull

 

  
         git pull origin
  
 

ㄴ파일에 어떤 부분이 수정될지 보여주고 merge하는 순간 덮어짐

 

14. fetch

- 원격저장소에서 소스를 가져오기

- merge를 사용하지 않음

ㄴ 내가 작업하고 있는 것과 합쳐짐 or 충돌나면 원래거 그대로 두고 다른 파일로 복사됨

        
        git fetch origin
  
 

 

15. branch

- 작업에 대한 가지

- 큰 줄기(master)에 영향을 주지 않고 가지에서만 별도로 작업을 할 수 있음

- 브랜치를 사용하여 저장소의 메인 분기에 영향을 미치지 않고 여러 기능이나 버그 수정을 동시에 수행할 수 있음

 

  
 
        git checkout -b 브랜치명
 
 
 
 

ㄴ 마스터브랜치를 check out 되고 새로운 브랜치로 가게 됨

16. Pull Request(PR)

- 다른 작업자가 push를 했으니 해당 자료를 가져가도록 당기기를 요청

- PR은 저장소에 대한 변경 사항을 제안하고 다른 개발자와 협업하는 방법

- 코드 변경을 제안하고 검토하며 저장소의 브랜치를 병합하는데 사용

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

11. 리팩토링  (0) 2024.04.26
10. 실습: Tweet  (0) 2024.04.26
08. Express 웹 프레임워크, route, morgan  (0) 2024.04.25
07. http 모듈, 템플릿 엔진  (0) 2024.04.24
06. 버퍼(buffer), 스트림(Steam)  (0) 2024.04.24