티스토리 뷰
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) 깃과 깃허브
- 깃은 내 파일을 감시하는 존재라고 했죠?
그렇다면 깃은 제 노트북 안에서만 있겠네요~ 제 파일만 감시하는 존재니까요 !!
- 깃허브는 하나의 클라우드 웹사이트죠 ! (다른 사이트들도 있지만, 깃허브가 가장 유명하답니다.)
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가 다르다는 것에 충격을 받았고,
개념을 정리해야 명령어도 쉽게 이해할 수 있을 것이라 생각하여 정리 해 보았습니다.
혹시 틀린 내용이 있거나, 이해가 되지 않는 부분이 있다면 댓글로 알려주세요 !!
쓴 소리도 달게 받겠습니다~
열심히 공부하겠습니다!!! 감사합니다 :)
'GitHub' 카테고리의 다른 글
[GitHub] 새로운 인증방법 도입 (push 안될 때) (1) | 2021.08.27 |
---|---|
[replit] git 잔디 안 심어지는 문제 (0) | 2021.04.27 |
replit 코드 깃허브에 업로드하기 (init부터 push까지) (0) | 2021.04.08 |
Replit와 깃허브 연동하기 ( 리플렛 ) (7) | 2021.04.08 |
[GitHub] 명령어 정리 -1 (0) | 2021.03.16 |
- Total
- Today
- Yesterday
- level1
- CHR
- do while
- 반복문
- 기초 100제
- 이것이 코딩테스트다
- SwiftUI
- python
- ord
- 프로그래머스
- 설명
- 깃허브
- 정답
- Swift
- 백준
- 16진수 입력
- COMMIT
- 시간초과
- 코드 업
- 부르트포스
- replit
- 리플릿
- 코드업
- 파이썬
- CodeUp
- 깃
- Code up
- 레플릿
- for문
- baekjoon
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |