티스토리 뷰

반응형

 

Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문

 

 

깃 저장소 만들기

 ● 저장소 : 깃으로 버전 관리를 할 떄 폴더 안에 버전이 저장되는 공간 

 

 1. 새로운 디렉터리 생성 후 생성한 디렉터리로 이동하기 

  마침표가 하나인 항목은 현재 디렉터리를, 마침표가 2개인 항목은 상위 디렉터리를 나타냄

 

 

2. 디렉터리에서 깃을 사용하기 위해 초기화

    ● initiializaed~~가 나타내면 이제부터 만들었던 pooreum-git을 사용할 수 있음

    ● 1번 사진과 비교했을 때와 다르게 .git이라는 디렉터리가 생성, 앞으로 깃을 사용하면서 버전이 저장될 저장소

    ● .git 디렉터리는 감춰져 있으므로 주의

 

버전 만들기

 

    ● 버전 : 깃에서 문서를 수정하고 저장할 때마다 생기는 것

    ● 작업 트리 : 파일 수정, 저장 등의 작업을 하는 디렉터리(ex: pooreum-git)로 우리 눈에 보이는 디렉터리

    ● 스테이지 : 버전으로 만들 파일이 대기하는 곳

    ● 저장소 : 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳

    ● 스테이지와 저장소는 눈에 보이지 않고 작업 트리 -> 스테이지 -> 저장소 순으로 이동

    

 

작업 트리에서 문서 수정하기

 

 1. 깃의 상태 확인하기

      ● On branch main : 현재 main 브랜치에 있다

      ● No commits yet : 아직 커밋한 파일이 없다

      ● nothing to commit : 현재 커밋할 파일이 없다

2. 새로운 파일 만들기

      ● hello.txt.명을 가진 파일 생성

 

3. 깃의 현재 상태 확인하기

       ● ls -la를 눌렀을 때 hello.txt가 만들어진 것을 확인 가능

       ● Untracked files : 버전을 한 번도 관리하지 않은 파일

 

4. 수정한 파일을 스테이지에 올리기 - git add

 

     ● 작업 트리에서 파일을 만들거나 수정했다면 스테이지에 수정한 파일을 추가

        이렇게 깃에게 버전을 만들 준비를 하라고 알려 주는 것을 스테이징 또는 스테이지에 올린다라고 표현

     ● Untracked files문구 대신 Changes to be committed라는 문구

      hello.txt파일 앞에 new file이라는 수식어 추가 => 새 파일을 앞으로 커밋할 것이다

 

4.  스테이징한 파일 커밋하기 - git commit

     ● 파일이 스테이징한 영역에 있으므로 이제 버전을 만들 수 있음 => 커밋한다

     ● 1file changed, 1 insertion(+) => 스테이지에 있던 hello.txt파일이 저장소에 추가됨

     ● 커밋한 후 깃의 상태 => 버전으로 만들 파일이 없고(nothing to commit), 작업 트리도 수정 사항 없이 깨끗

      ● 버전이 제대로 만들어졌는지 확인 => $ git log

      ● 만든 사람/ 만든 시각 등의 정보가 표시

 

 

5.  스테이징과 커밋 한꺼번에 처리하기 -  git commit -am

 ●  수정한 내용을 스테이지에 올리는 동시에 커밋도 가능, 그러나 한 번이라도 커밋을 한 적이 있는 파일만 가능

 

   ● hello.txt파일을 열어서 2를 추가로 입력

   ● git commit -am "message2"를 파일을 스테이징과 커밋을 동시에 처리하고 git log로 깃의 현재 상태 확인

   ● message2를 가진 hello.txt.버전이 보임 => 가장 최근 버전 정보

 

 

커밋 내용 확인하기

1. 커밋 기록 자세히 살펴보기 --  git log

 ● Author => 작성자

 ● Date => 만든 날짜

 ● message2 => 커밋 메시지 

 ● 화면의 노란색 글씨(commit 8396~~~) => 커밋 해시

 ●  HEAD -> main => 최신 버전

 

2. 변경 사항 확인하기 -- $ git diff

hello.txt파일을 열어서 2를 two로 바꾸기

 ● git log를 입력해보면 파일이 수정되었고 아직 스테이징 상태가 아니라고 나옴

 ● git diff를 입력해보면 빨간색 -2(2가 삭제), 초록색 글자로 +two(two가 추가)

 

 

버전 만드는 단계마다 파일 상태 알아보기

1. tracked파일과 untracked파일

hello.txt를 열어서 3을 추가로 입력, hello2.txt를 만들어서 a,b,c,d입력

● hello.txt는 modified로 수정되었고, hello2.txt는 untracked file이라고 뜬 것을 볼 수 있음

● 한 번이라도 커밋한 파일은 깃이 계속해서 추적하고 있음(tracked파일 => hello.txt)

● 한 번도 커밋하지 않은 파일들은 수정 내역을 추적하지 않음(untracked file, hello2.txt)

 

두 파일을 스테이지에 올리고 커밋하기 

커밋 기록 상태 알아보기

 

커밋과 과련된 파일까지 함께 살펴보기

● 각 커밋 메시지에 따라서 무슨 파일과 관련되어 있는지 알 수 있음

 

 

unmodified, modified, stage상태 확인해보기

● nothing to commit ~ => 작업 트리에 있는 모든 파일의 상태가 unmodified

changes not stage for commit => 파일이 수정만 된 modified상태

 

● Changes to be committed => 커밋 직전 단계, staged상태

 

 

작업 되돌리기

1. 작업 트리에서 수정한 파일 되돌리기 -- git restore

hello.txt에서 3을 three로 수정 후 restore로 되돌리기

● hello.txt에서 3을 three로 수정 => git status에서 modified라고 뜸

git restore hello.txt로 파일 되돌리기

cat hello.txt로 파일 내용 보기 => three가 아니라 3이 써져 있음

 

2. 스테이징 되돌리기 -- git restore --staged

hello2.txt를 스테이징 한 후 restore --staged로 스테이징 취소하기

● add를 통해 스테이징 후 git status로 확인 => changes to be commited

● restore --staged입력 후 git status로 확인 => changed not staged(스테이징이 취소됨)

 

3. 최신 커밋 되돌리기 -- git reset HEAD^

hello2.txt를 스테이징, 커밋까지 한 후 커밋을 취소하기 => 커밋과 스테이징이 함께 취소됨

첫 번째 사진에서 git log를 통해 hello2.txt가 커밋되어 있는 것을  확인

● 두 번째 사진에서 git reet HEAD^를 입력 후 hello2.txt가 Unstaged가 되었다는 문구가 뜸

● 더 자세히 알아보기 위해 git log입력 => message4로 커밋된 파일이 사라져있음

※ git reset --soft HEAD^ => 커밋을 취소하고 파일을 staged 상태로 작업 디렉터리에 보관 ※

    git reset --mixed HEAD^ => 커밋을 취소하고 파일을 unstaged 상태로 작업 디렉터리에 보관

   

 

4. 특정 커밋으로 되돌리기 -- git reset 해시

● rev.txt에 각각 A,B,C,D를 한 개씩 추가하고 R1,R2,R3,R4로 커밋한 상태

git reset --hard 커밋 해시를 하였고 Head is~로 최신 커밋이 변경되고 git log에서도 R2가 제일 위에 위치하고 있음

● cat rev.txt를 통해 파일의 내용을 보면 A,B만 남아있고 R3랑 R4가 사라짐에 따라 입력했던 C,D도 사라짐

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함