'modified'에 해당하는 글 2건

git commit

Tool/Git 2013. 3. 22. 01:09

4. commit 후의 status

 

상태(status) 확인 후 원하는 작업물이 Staged 상태가 되었는지 확인이 되었으면,
commit 명령을 사용하여 작업물을 Staged -> HEAD 상태로 놓습니다.
-m(message) 옵션을 사용하여 인라인 메시지를 작성할 수 있습니다.

 

$ git commit -m 'first file added'
[master (root-commit) 28713ce] first file added
 1 file changed, 1 insertion(+)
 create mode 100644 file1.txt
$ git branch
* master
$ git status
# On branch master
nothing to commit, working directory clean

 

master branch에 커밋이 되었고 작업 현황을 보여줍니다.
그리고 현재의 branch가 master로 출력되었습니다. 첫번째 커밋과 동시에 master branch가 생성이 되었습니다.
commit 후에 status를 확인해 보니, commit 할 것이 아무것도 없다는 메시지가 출력됩니다.

 

 

 

5. tracked file 수정

 

commit 할 것이 없는 상태에서 다시 파일을 생성하던지, 기존 파일을 수정하면 다시 상태가 바뀌게 됩니다.
파일 생성은 실행해 보았으니 tracked(버전 관리 대상)된 기존 파일을 수정해 보겠습니다.

 

$ cat >> file1.txt
test
$ git status
# On branch master
# 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:   file1.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

 

수정할 파일을 HEAD 단계에 놓으려면 처음처럼 add 명령으로 Staged 상태에 놓은 후 commit 하면 됩니다.
수정한 파일을 add 명령으로 Staged 상태에 놓은 뒤 커밋 전에 다시 그 파일을 수정하면 어떻게 될까요?
그 상태로 commit을 한다면 Staged 상태였던 파일의 내용이 그대로 HEAD로 올라가고,
두 번째 수정한 내용은 아무 곳에도 반영되지 않습니다.
add 후에 파일을 다시 수정했다면 add 명령을 다시 실행하여 Stage area에 반영해야 합니다.
tracked 파일에 한해서 commit -a 옵션을 사용하면 git add, git commit 을 한 번에 실행해 줍니다.

 

 

지금까지는 모두 로컬 저장소(Local Repository) 안에서의 작업이었습니다.
아직 원격 저장소(Remote Repository)는 변한게 없다는 사실...


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

git init

Tool/Git 2013. 3. 20. 00:32

clone 이란 명령으로 원격 저장소의 모든 소스를 로컬 저장소로 복제할 수 있었습니다.
그 방법 외에도 로컬 저장소를 생성하는 방법으로 init 명령을 사용할 수 있습니다.
어느 디렉토리에서든 init 명령 하나로 해당 디렉토리에 .git 디렉토리를 생성하고 로컬 저장소가 될 수 있습니다.

 

$ pwd
/home/oops4u/dev2
$ git init
Initialized empty Git repository in /home/oops4u/dev2/.git/

 

init 란 명령으로 간단하게 로컬 저장소가 생성되었습니다.
이 로컬 저장소에 이미 기존 작업물이 존재하거나 새로 작업물을 만들어서 원격 저장소에 보내려 한다면,
우선적으로 로컬 저장소 상에서 버전 관리에 대한 준비를 마쳐야 합니다.(commit)

 

 

* git 의 로컬 저장소 구조는 다음과 같습니다.

 

 

  1. Working directory : 실제 파일 디렉토리(unstaging area)
  2. Index : 준비 영역(staging area)
  3. HEAD : 최종 확정본(commit)

 

Working directory 에서 버전 관리 하려는 파일들을 add 명령을 사용하여 Index 영역에 등록시키고,
commit 명령으로 HEAD 상태로 만들면 원격 저장소로 보낼 수 있는 준비가 완료된 것입니다.

 

빈 디렉토리에서 하나의 파일을 생성하고 commit하여 HEAD에 반영하기 까지의 상태(status)를 순차적으로 확인해 보겠습니다.

 

 

 

1. init 후 status

 

$ git init
Initialized empty Git repository in /home/oops4u/dev3/.git/
$ git branch
$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)

 

branch 명령은 현재 작업중인 branch를 나타내는데 아직 branch가 생성되지 않았습니다.
branch 란 것은 말 그대로 나뭇가지처럼 프로젝트를 분리해서 작업할 수 있게 합니다.
기본적으로 master란 branch가 생성되며, 언제 생성되는지는 두고 보겠습니다.

 

status 명령은 현재 프로젝트의 버전 관리 상태를 나타내 주는 것입니다.
현재 branch(master)를 나타내고 있고, commit 할 수 있는 것이 아무것도 없다고 나타내고 있습니다.

 

 

2. file 생성 후 status

 

$ cat > file1.php
test
$ git branch
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       file1.php
nothing added to commit but untracked files present (use "git add" to track)

 

file1.php란 파일을 생성했고 branch는 여전히 생성되지 않았습니다.
status에서 Untracked 는 버전 관리 대상이 아니라는 뜻입니다. tracked 는 반대로 버전 관리 대상이란 뜻이구요.
버전 관리 하려면 git add 명령으로 추가하라고 친절히 나타나 있으며, 여전히 commit 할 수 있는 것은 없다고 나타납니다.
앞으로 계속해서 사용될 단어입니다.
tracked, untracked, modified, unmodified...

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,