개발/프로젝트 관리

[git] 기초 (init/status/add/commit)

smile-haha 2022. 12. 21. 02:22
반응형

00. install

git을 사용하기 위해서는 일단 git을 설치해야한다. git 홈페이지(http://git-scm.com/download/win)에 들어가서 다운 받도록하자. 다운 받으면 exe 파일을 실행하여 설치한다. 

- git을 설치하기 전에는 당연히 git 명령어가 먹히지 않는다.

 

01. git init

$ git init

프로젝트 저장소를 만드는 명령어. 저장소를 만들 프로젝트 디렉토리(프로젝트의 root 폴더)로 가서 해당 명령어를 치면 프로젝트 저장소가 만들어짐. 정상적으로 저장소가 만들어지면 숨김 파일 .git 폴더가 생김.

 

🎃.git

프로젝트 버전관리를 위한 저장소 역할을 하는 폴더. 이정도만 알고 있자. 다음에 깊이 들어가 보자..

🎃.gitIgnore

버전관리를 하지 않을 경로를 명시하는 파일. git init 명령어로 생성되지 않아 따로 파일을 만들어야 한다.

파일 내부는 아래와 같이 버젼관리를 하지 않은 파일 경로가 enter로 구분된다.

 

02. git status

$ git status

현재 프로젝트 저장소의 현재 상태를 확인하는 명령어.  옵션은 git 홈페이지에서 확인 가능(https://git-scm.com/docs/git-status) 많은 옵션이 있다. 오.. 

💡 stackoverflow에서 -uno 옵션을 사용하면 버전 관리 대상(untracked 파일은 포암x)이 최신 버젼 기(head)준 앞인지 뒤인지, 분기가 되었는지를 알 수 있다고 한다. 아무것도 표시되지 않으면 로컬과 서버에 올라간 파일이 동일한 상태(head)라는 의미라는데,

아직 해본적은 없다. 다음에 한번 해봐야겠당...(https://stackoverflow.com/questions/3258243/check-if-pull-needed-in-git)

버젼관리 상태 git status에서 사용하는 명칭
Untracked 파일
 : 버젼관리 대상 x
- Untracked files :
파일 경로 여기 표시
Tracked 파일
 : 버젼 관리 대상
Unmodified 파일 내용이 수정되지 않은 상태
(commit 완료)
-
Modified 파일 내용이 수정된 상태 Changes not staged for commit : 
  (use "git add <file>..." to update what will be committed)
  (use "git checkout <file>..." to discard changes in working directory)
modified :
파일 경로 여기 표시
Staged 커밋으로 git에 기록될 준비가 된 상태
(add 된 상태)
Changes to be committed : 
파일 경로 여기 표시

💡 충돌이 일어났을때는 아래와 같이 나타난다고 한다.

you have unmerged paths.
  (fix conflicts and run "git commit")

Unmerged paths:
  (use "git add <file>..." to mark resolution)
 
        both modified: <파일명>

 

03. git add

$ git add <file>

 

<file>을 버젼관리하겠다는 의미. add하면 Tracked 파일이 되는 것임.

💡 add 한 것을 취소(untracked 파일로 돌아가고 싶다면)

$ git reset HEAD <file>

 

04. git commit

$ git commit <file> <option>

<file>을 서버에 올리겠다는 의미. 같은 서버를 바라보는 팀원들이 내가 커밋한 소스를 확인 할 수 있다. 

💡 commit 옵션도 굉장히 많은데..

$ git commit -m "메세지"  // 커밋 메세지 입력
$ git commit -a          // add 후 커밋
$ git commit -am "메세지" // add 후 커밋 & 커밋 메세지 입력

 - 추가적인 내용은 이 경로에서...(https://git-scm.com/docs/git-commit

💡 commit한 것을 취소

staged 상태로 워킹 디렉토리에 보존 $ git reset --soft HEAD^
unstaged 상태로 워킹 디렉토리에 보존 $ git reset --mixed HEAD^
$ git reset HEAD^
$ git reset HEAD~3 마지막 3개의 commit을 취소
unstaged 상태로 워킹 디렉토리에서 삭제 $ git reset --hard HEAD^

 

반응형

'개발 > 프로젝트 관리' 카테고리의 다른 글

[git] 원격 저장소 생성하기  (0) 2022.12.23