티스토리 뷰

GitHub

[GitHub] 깃허브의 쉬운 개념 이해

내일은개발천재🎵 2021. 3. 13. 21:24

 

1. Git vs GitHub

Git과 GitHub는 매우 다른 존재라는 사실, 알고 계셨나요? 

 

 1) Git

   - 항상 내 파일을 감시하고 있는 존재 !  👀

    => 내 파일이 변하는 과정을 매시간 감시하고 있다.

    => 하나의 파일로 여러 버전을 보관할 수 있는 기능을 제공하는 것이 Git !! (History)

 

 2) GitHub

  - Git을 이용해 협업할 때 필요한 존재 !  

    => 내 History를 GitHub라는 웹사이트에 Push한다 !

         동업자 B가  나의 History를 가져오면 내 파일의 변화과정을 모두 볼 수 있게 된다. 

    => B는 A의 History를 이용해 파일을 수정하고, GitHub에 업로드 하면 하나의 파일을 발전시켜나갈 수 있는 것 !!

 

2. Git의 작업환경 (Git workflow)

 1) 깃과 깃허브

   - 깃은 내 파일을 감시하는 존재라고 했죠?

      그렇다면 깃은 제 노트북 안에서만 있겠네요~ 제 파일만 감시하는 존재니까요 !!

   - 깃허브는 하나의 클라우드 웹사이트죠 ! (다른 사이트들도 있지만, 깃허브가 가장 유명하답니다.)

Git과 GitHub 관계, 화살표는 명령어입니다.

 2) Git

 

     (1) Working directory

 

      - 현재 작업중인 파일이 존재하는 곳입니다.

 

      - 이 파일들은 Tracked와 UnTracked로 구분할 수 있는데요

         Untracked는 말 그대로 Git이 모르는 존재입니다. 

         새롭게 만든 파일이나, Git이 생기기 전에 이미 존재하던 파일이 되겠네요!

 

       - 그럼 Tracked 파일은 Git이 존재를 알고 있는 파일이 되겠네요 👍

          다시 Tracked 파일은 파일의 상태에 따라 unmodified와 modified로 나뉘게 돼요 ㅠㅠ

          조금 헷갈릴 수 있겠지만 어렵지 않아요 !!

 

       - 만약 Git이 a.txt에 "hello"가 저장 되어 있는 것으로 알고 있다고 가정해볼게요.

          이때 진짜 내 노트북 a.txt에 "hello"가 저장 돼 있다면 unmodified

          "hello"가 아닌 다른 문자가 저장 돼 있다면 modified가 됩니다

           감이 잡히시나요 ~??

 

 

     (2) Staging area

 

- Add 명령어를 사용하게 되면 Staging area로 들어가게 됩니다

  git add *.txt   #모든 txt파일을 이동시킨다.

 

 - Commit을 준비하는 공간이라고 생각해도 좋아요~

 

 - 이때 a.txt가 unmodified 상태라면 (수정되지 않았다면)

   Staging area로 이동하지 않습니다. Commit 할 필요가 없기 때문이죠 ~

 

 - 즉, add 명령어는 Tracked 파일들 중 modified 상태의 파일만 Staging area로 !!👌

 

 

 

 

   (3) Git directory

 

 

 - Git의 History라고 생각하시면 돼요~

 

 - 편의상 a.txt, b.txt라고 표시하긴 했는데, 사실은 해시값이 저장된답니다!

 

 - 저장될 때 마다 해시값이 저장되기 때문에, 그 해시값을 이용해서

   이전 버전으로 돌아가는 기능을 사용할 수 있어요 (타임머신과 비슷)

 

 - 즉, commit 명령어로 하나의 히스토리를 만들 수 있고, 

    checkout이라는 명령어로 이전 버전을 가져올 수 있게 되는겁니다!!

 

 + 많이 볼 수 있는 master는 현재 branch의 가장 최근 커밋이고,

    branch는 a.txt의 여러 히스토리 중 하나의 별명이라고 생각하시면 돼요!

 

 

 3) GitHub

  - Git directory에 있는 History를 클라우드 사이트에 공유하는 것입니다!!

  - 같이 협업하는 친구는 저의 History를 통해 모든 문서를 확인할 수 있고, 과거 내역도 모두 볼 수 있게 되겠죠?

 

 

오늘 공부한 내용은 여기까지입니다!

Git과 GitHub가 다르다는 것에 충격을 받았고,

개념을 정리해야 명령어도 쉽게 이해할 수 있을 것이라 생각하여 정리 해 보았습니다.

혹시 틀린 내용이 있거나, 이해가 되지 않는 부분이 있다면 댓글로 알려주세요 !!

쓴 소리도 달게 받겠습니다~

열심히 공부하겠습니다!!!  감사합니다 :)

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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 31
글 보관함