본문 바로가기
프로그래밍/개발도구, 프로그램

git 기본 사용법

by pentode 2023. 6. 5.

git의 간단한 사용법입니다. git은 로컬에 모든 형상 정보를 저장합니다. 여러명이 협력하여 작업할 때는 서버를 따로 두고 공유를 할 수 있습니다. 서버를 사용하더라도 참여하는 모두가 자신의 로컬에 전체 형상 정보를 가지게 됩니다.

 

1. 파일의 상태

작업 디렉토리내의 파일은 git으로 관리하지 않는 Untracked 파일(추적하지 않는 파일)과 git에 의해 관리하는 Tracked 파일(추적하는 파일)로 나뉩니다. Untracked 파일은 .ignore 파일에 등록하여 git에서 제외합니다. Tracked 파일은 다시 세가지 상태로 나눕니다. 각각 Modified, Staged, Committed입니다.

파일이 처음 작업 디렉토리에 추가되면 Untracked입니다. 이 파일을 "git add" 하면 Staged 상태가 되고, "git commit" 하면 Committed 상태가 됩니다. Staged나 Committed 상태의 파일을 수정하면 Modifed가 됩니다.

 

2. 사용자 정보 설정

커밋할때 사용할 사용자 정보를 설정합니다. 이메일과 이름을 지정하는데 커밋할 때마다 이 정보가 사용됩니다.

 

$ git config --global user.name "내 이름"
$ git config --global user.email "you@example.com"

 

프로젝트 마다 다른 정보를 사용하려면 "--global" 옵션을 빼고 지정합니다.

 

3. 저장소 초기화

프로젝트 폴더내에서 다음 명령을실행하여 로컬 저장소를 생성합니다. ".git" 폴더가 생성됩니다.

 

$ git init

 

4. 현재 상태확인

$ git status
현재 브랜치 master
커밋할 사항 없음, 작업 폴더 깨끗함

 

수정한 파일이 있는 경우.

 

$ git status
현재 브랜치 master
커밋하도록 정하지 않은 변경사항:
    (무엇을 커밋할지 바꾸려면 "git add <파일>..."을 사용하십시오)
    (use "git restore <file>..." to discard changes in working directory)
        수정함:    src/App.tsx
커밋할 변경 사항을 추가하지 않았습니다 ("git add" 및/또는 "git commit -a"를 사용하십시오)

 

5. 파일 새로 추적하기

새로 추가된 파일(Untracked)을 추적합니다(Modified 상태의 파일을 Staged 상태로 바꾸는데도 사용합니다).

 

$git add src/App.tsx

 

6. 변경 사항 Commit 하기

기본적으로 Staged상태의 파일만 커밋 됩니다.

옵션 없이 commit 하면 기본 편집기(vi)가 열리고 코멘트를 추가하게 됩니다.

 

$git commit

 

-m 옵션을 사용하면 뒤에 코멘트를 입력할 수 있습니다.

 

$ git commit -m "코멘트"

 

-a 옵션을 사용하면 add와 commit을 한꺼번에 할 수 있습니다.

 

$ git commit -a -m "코멘트"

 

7. 파일 삭제하기

파일 삭제는 git rm 명령으로 삭제할 파일을 Staged 상태로 만듭니다. 이때 실제 파일은 삭제 됩니다. 다음으로 commit 하면 파일은 git에서 삭제되고 더 이상 추적하지 않게 됩니다.

 

$ git rm second.html
rm 'public/second.html'
$ git status
현재 브랜치 master
커밋할 변경 사항:
    (use "git restore --staged <file>..." to unstage)
        삭제함:    second.html
$ git commit -m "delete second.html"

 

이미 파일을 수정했거나 Staged상태에 있다면 -f 옵션을 사용해서 강제로 삭제해야 합니다.

"git rm"을 사용하지 않고 작업 디렉토리에서 파일을 먼저 삭제했다면 "git status"에 Stage에 올려지지 않은 파일로 나옵니다. 이때도 "git rm"으로 삭제하고 커밋하면 됩니다.

반응형