본문 바로가기

Git

Git 명령어(2024-04-25)

Git 

더보기

Git
버전관리 시스템의 종류이다

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

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

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

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

Git 설치
1. 구글에서 'git 설치' 검색

Git 설치 확인
윈도우 검색 => git bash 실행
git --version 입력
git version 2.44.0.windows.1 출력

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

    cd C:\gyeongmin\KDT3\Git\project 
    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.name(또는 email)

4. 로그 확인하기

    git log

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

    <제목>
        # 제목 (=<h1>)
        ## 제목(=<h2>)
        ~
        ###### 제목(=<h6>)

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

    <목록>
        순서가 있는 목록
            1. 김사과
            2. 반하나
        
        순서가 없는 목록
            - 김사과
            - 반하나
            또는
            * 김사과
            * 반하나

    <링크>
        [클릭할 문자열](URL)
        예) [구글로 이동](https://www.google.com)
    
    <코드 작성>
        ```
            프로그램 코드 작성
            ....
        ```

 

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

    git add .

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

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


깃허브(GitHub)
- git으로 버전 관리한 코드를 업로드 할 수 잉ㅆ는 클라우드 서비스
- 단순히 저장만 하는 것이 아니라 다른 유저들과 함께 코드를 공유하고 온라인으로 하나의 프로젝트를 개발할 수 있게 해줌
https://github.com 

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

    git remote add origin https://github.com/gyeongmin0218/test.git

    git remote addd origin2 https://github.com/gyeongmin0218/test.git

    ...

    확인하기
    git remote -v

    삭제하기
    git remote remove 이름(origin or origin2...)


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

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

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

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

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


11. 다른 사람과의 협업
- 원하는 Repository에서 Settings -> Collaborators -> 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 브렌치명