ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git] Git 으로 작업하기
    Programming/Git 2022. 4. 9. 02:17

    사용자 설정

    Git 을 설치하고 사용자 정보를 설정해두면, Git 은 커밋할 때마다 이 정보를 사용한다. 한 번 커밋한 후에는 정보를 변경할 수 없다.

    $ git config --global user.name "사용자 이름"
    $ git config --global user.email "사용자 이메일"
    
    // git 사용자 설정 확인
    $ git config --list
    • --global 옵션은 한 컴퓨터 당 단 한 번만 하면 작업하는 모든 프로젝트에 적용된다. 만약 프로젝트마다 다른 이름과 이메일 주소를 사용하고 싶으면 해당 프로젝트 내에서 --global 옵션을 빼고 위 명령을 실행한다.

     

    Git 저장소 생성

    작업의 종류에 따라 두 가지 경우가 있다. 1) 이미 존재하는 프로젝트를 받아오는 경우, 2) 새로 프로젝트를 시작하는 경우.

    이미 존재하는 프로젝트를 받아오는 경우

    1. Github, Bitbucket 등에서 받아올 프로젝트로 이동한 뒤 Repository path 복사

    2. 복사한 Repository path 를 로컬에 Clone 한다.

    $ git clone repository-path

     

    새로 프로젝트를 시작하는 경우

    1. Git 으로 관리하고 싶은 폴더로 이동 (빈 폴더이든, 이미 파일이 있는 폴더이든 상관 없다.)

    // 폴더가 없다면 폴더 생성
    $ mkdir new-git-directory
    
    // 생성한 폴더로 이동
    $ cd new-git-directory

    2. 저장소 초기화 (해당 폴더를 Git 이 관리하는 상태로 만들어준다.)

    $ git init

    3. 최초 커밋하기
    git 은 파일 단위로 버전을 관리하기 때문에 빈 폴더(혹은 폴더들만 존재하는) 상태에서는 커밋을 할 수 없다. README 파일을 생성한 후 최초 커밋을 해준다. 

    // README.md 파일 생성
    $ touch README.md
    
    $ git add README.md
    $ git commit -m "first commit"

    4. 원격 저장소 연결
    Github 에 원격 저장소를 만들어 준 후 위에서 로컬에 만든 저장소와 연결한다.

    Github 오른쪽 위 화면에서 + 버튼을 누르고 New repository 를 클릭한다.

    생성할 원격 저장소 정보를 입력한 후 Create repository 를 클릭하면 친절하게 이후 단계를 설명해준다.

    우리는 이미 로컬에 저장소를 만들었기 때문에 두 번째(...or push an existing repository from the command line) 에 있는 명령어들을 그대로 넣어주면 된다.

    // 로컬 저장소와 원격 저장소를 연결
    $ git remote add origin repository-path
    
    // -M 옵션은 branch 이름을 변경해주는 옵션이다.
    // -M <oldBranch> <newBranch>
    // <oldBranch> 를 생략할 경우 현재 branch 이름을 newBranch 로 변경한다.
    // master -> main 으로 브랜치 명이 변경된다.
    // 생략하고 master 를 그대로 사용해도 된다.
    $ git branch -M main
    
    // -u 옵션은 현재 branch 를 origin 이라는 원격 저장소의 main 브랜치로 연결해준다.
    // 한 번 연결해두면 이후에는 git push, git pull 명령어 만으로 해당 브랜치로 merge 가 가능하게 된다.
    $ git push -u origin main

    Branch 설정

    • 브랜치 확인
    $ git branch	// 로컬 저장소 branch 확인
    $ git branch -r // 원격 저장소 branch 확인
    $ git branch -a // 로컬+원격 저장소 branch 확인

    원격 저장소에 여러 branch 가 있어도, 로컬에 처음 clone 한 후에는 원격 저장소의 branch 는 받아지지 않고 기존에 있던 master(or main) 하나만 존재한다.

    이 때, 만약 원격 저장소의 branch 를 로컬로 가져와 작업하고 싶다면 아래와 같이 하면 된다.

    // 원격 저장소에 있는 branch 와 동일한 이름의 branch 를 로컬에 생성하고,
    // 생성한 로컬 branch 를 원격 branch 와 동기화 한다.
    // 이후 새로 생성한 branch 로 checkout 한다.
    $ git checkout -t origin/branchName

    만약 branch 의 이름을 변경하여 가져오고 시다면 $ git checkout -b [생성할 branch 이름] [원격 저장소의 branch 이름] 처럼 사용하면 된다.

    ※ $ git checkout [원격 저장소의 branch 이름] : 아무런 옵션 없이 원격 저장소의 branch 를 checkout 하면 'detached HEAD' 상태가 되어 소스를 보고 변경할 수 있지만, 변경 사항들을 commit/push 는 할 수 없다. 또한, 다른 branch 로 checkout 하면 변경 사항들은 모두 사라진다.

    • 새로운 작업을 시작한다면, 로컬에서 새로운 branch 를 생성/작업한 후 원격 저장소로 해당 branch 를 푸시하면 된다.
    // branch 생성 및 checkout
    $ git checkout -b <branchName>
    
    // 원격 저장소에 branch 생성 및 로컬 branch 와 연결
    $ git push origin <branchName>

     

    기타 자주 사용하는 명령어

    // 원격 저장소에 변경 내역이 생겼을 경우 변경 내역 로컬 저장소에 받기
    $ git pull origin <branchName>
    
    // git 상태 확인 (unstaged, modified 파일 등)
    $ git status
    
    // 로컬에서 변경한 내역을 git 이 추적할 수 있는 staging area 에 추가
    $ git add <fileName>
    $ git add *	// 모든 unstaged/modified 파일을 추가
    $ git add .	// 모든 unstaged/modified 파일을 추가
    
    // staged 된 파일을 다시 unstaged 상태로 변경
    $ git restore --staged <fileName>
    
    // staging area 에 있는 변경 내역들을 commit
    $ git commit -m "commit message"
    
    // commit log 확인
    $ git log
    
    // commit 내역을 원격 저장소에 푸시
    $ git push orgin <branchName>
    // git log 분석
    // 특정 시간(since ~ before) 동안 선택된 branch 의 특정 사용자의 commit 정보를 출력한다.
    $ git log --pretty=format: "%h - %an, %ar : %s" --since="2022-01-01" --before="2022-03-25" --no-merges --author="poarlim"

     

    'Programming > Git' 카테고리의 다른 글

    [Git] fork 후 작업하기  (1) 2022.04.09
Designed by Tistory.