일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Causal Discovery
- 자동화
- git
- causal inference
- 업무자동화
- 온라인수업
- Counterfactual
- 구글클래스룸출결
- Selenium
- 크롤링
- 구글클래스룸
- beautifulsoup
- github
- Today
- Total
surish
[Git]기본 명령어 실습 본문
Git 기본 명령어 실습 : 생활코딩 유튜브 참고
0. cmd 기본 명령어
* pwd, cd, mkdir 명령어(각각 현재 위치, 폴더 열기, 폴더 만들기)
* git 입력하면 모든 명령어가 나옴
* git init: 버전관리의 시작, 시작하면 .git이라는 디렉토리가 생성되고 모든 버전 기록이 여기에 저장됨!
- 모르고 지워버렸을때는...........🙄;
1. add : 변경하다
$ vim f1.txt > i를 눌러 삽입(insert)모드를 만들고 입력 후에는 esc를 눌러 명령어 모드로! (명령어 모드 <-> 삽입 모드)
:wq을 눌러(write & quit)
내용을 보려면 cat f1.txt
(왜 vim, cat? 무슨 뜻일까?)
이제 버전관리 시작!(status) git status 를 통해 현재 상태 보기
이 디렉토리 안의 f1.txt파일은 버전관리 폴더에는 들어가있으나 'untracked file' 즉 추적되지 않는다. 아직!!
track을 시작하려면 git add f1.txt !
결국 git add는 프로젝트를 하는데에 있어 핵심 파일만을 명확하게 깃에게 전달해주는 것이다.
2. commit : 변경을 기록하다
* 버전이란 무엇인가? : 의미있는 변화(버전!=변화)
* 어떤 작업이든 완결된 상태를 버전이라고 하는 것.
* (참고)그 전에 누가 작업했는지 알 수 있도록 (한번만 해주면 되는 작업) 이름 & 이메일주소 설정
그리고 git commit을 눌렀더니, 갑자기 vs가 열린다..
* 깃의 본질 중 하나인 버전 생성 방법은 바로 우선 복사하기!
cp A B : A와 똑같은 B를 만든다(copy)
git log : 깃의 역사를 확인하기
* commit과 add : 왜 commit하기 전에 꼭 add를 해야하는가?
commit 하나는 하나의 작업을 담고 있는 것이 가장 이상적이다. 그런데 너무 많은 커밋을 해야할 때 add를 통해서 원하는 커밋만 담을 수 있다.
add를 한 파일만이 커밋이됨. 즉
이 상태에서 커밋을 하면 f1는 새로운 버전에 포함, f2는 포함되지 않게 됨.
add를 통해 이미 작업한 내용 중 커밋할 것만 추려서 선택적으로 커밋을 할 수 있다!
그리고, add된 commit 대기상태를 stage area라고 함.
2-2. 버전의 효용을 체감하기
1) git log : 역사 보기 - 과거의 내용 찾아보기
여러가지 옵션을 추가할 수 있음. git log -p : 차이점을 상세하게 알려줌
commit에는 고유한 번호(id같은)가 있음!(노란 글씨)
두 커밋 (id)사이의 차이점을 보기 위해서는 git diff id1 ..id2 : 두 소스 사이의 차이점
(왜 붙여넣기가 안되지...?) : cmd 창에서는 ctrl+c, v가 아니라 ctrl+ins, shift+ins 였다... 몰랐음..
작업을 할 때 커밋을 하기 전 문제가 있는지 없는지 마지막으로 리뷰할 수 있는 기회를 준다!
코드 사이의 차이점을 통해 실수가 없는지 파악하기, 이전 커밋과의 차이점!
3. reset & revert : 되돌리다
과거로 돌아가기 : 즉 커밋을 취소하는 과정(주의해야 함)
1) reset
현재의 로그를 취소해서 과거로 돌아가기!
경계가 항상 중요하다. 어디로 리셋되는 것인지!
git reset commit_id 1, 2, 3번째 커밋에서 2번째 아이디로 리셋을 하면, 1, 2만 살아있게 됨.
사실 깃에선 어느 정보도 거의 삭제되지 않음. 버전 하나를 버린 것이 아니라 필요하면 복구할 수 있다. (원리는 나중에)
원격저장소에서 협업을 할 때 나의 버전도 공유할 수 있다.
단, reset 커밋은 공유하기 전의 파일에 대해서만 가능함!
git reset commit_id --hard : 이해하기 쉬우나 위험한 방법. 나중에 soft, 등의 메소드를 쓰기! 우선은 hard하게
2) revert
reset(literally 다시 맞추다)은 이력을 남기지 않아 완전히 되돌아가고 싶을 때 사용, 하지만 컴퓨터에서 파일을 삭제하면 휴지통으로 들어가듯이...어딘가에는 커밋이 남아있음. 흔히 하는 ctrl+z(ctrl+shift+z 하면 다시 실행되지만 눈에는 보이지 않는 상태)
revert(literally 되돌아가다 - 흔적이 남음)는 과거로 돌아가겠다는 이력을 남기고 원하는 시점의 커밋으로 돌아감, 구글문서에서 제안모드처럼 비유해봐도 좋지만 충돌이 날 경우에는 정확하게 이해해야한다!
[궁금한 것, 기타 등등]
- git으로 txt파일을 다뤘는데, 또 어떤 파일의 버전관리가 가능한가? 한글과 피피티도 가능하네..헐...
- 지난 주에 git을 완전히 잘못 알고 있었다..
- 정리하면 : git init, vim (file), git add (file), git commit, 되돌릴 경우 reset, revert(는 잘 모르겠다) 사이사이에 ls -al, log -p, status확인하면서 작업하기.
- 정리
출처 : 생활코딩 - 지옥에서 온 Git
'개발' 카테고리의 다른 글
[Git] 복습 & 보완 (0) | 2023.02.05 |
---|---|
[Git] Git 전반적인 프로세스 나노복습 (0) | 2023.01.14 |
[Git]Github (0) | 2023.01.03 |
[Git] 브랜치 실습하기 (0) | 2022.12.28 |
[Git]Git 기본개념 이해하기 (0) | 2022.12.13 |