관리 메뉴

surish

[Git]기본 명령어 실습 본문

개발

[Git]기본 명령어 실습

surish 2022. 12. 19. 21:50

Git 기본 명령어 실습 : 생활코딩 유튜브 참고

0. cmd 기본 명령어

* pwd, cd, mkdir 명령어(각각 현재 위치, 폴더 열기, 폴더 만들기)

git init과 ls -al(ls는 list segment?)

* git 입력하면 모든 명령어가 나옴
* git init: 버전관리의 시작, 시작하면 .git이라는 디렉토리가 생성되고 모든 버전 기록이 여기에 저장됨!
- 모르고 지워버렸을때는...........🙄;

git init을 하여 버전관리를 시작했을 때 만들어지는 디렉토리 .git

 

1. add : 변경하다

$ vim f1.txt > i를 눌러 삽입(insert)모드를 만들고 입력 후에는 esc를 눌러 명령어 모드로! (명령어 모드 <-> 삽입 모드)
:wq을 눌러(write & quit)
내용을 보려면 cat f1.txt
(왜 vim, cat? 무슨 뜻일까?)
이제 버전관리 시작!(status) git status 를 통해 현재 상태 보기

git status를 통해 tracked 여부를 볼 수 있다.

이 디렉토리 안의 f1.txt파일은 버전관리 폴더에는 들어가있으나 'untracked file' 즉 추적되지 않는다. 아직!!
track을 시작하려면 git add f1.txt !

git add 후 git status : new file로 인식함

결국 git add는 프로젝트를 하는데에 있어 핵심 파일만을 명확하게 깃에게 전달해주는 것이다.

2. commit : 변경을 기록하다

* 버전이란 무엇인가? : 의미있는 변화(버전!=변화)
* 어떤 작업이든 완결된 상태를 버전이라고 하는 것.
* (참고)그 전에 누가 작업했는지 알 수 있도록 (한번만 해주면 되는 작업) 이름 & 이메일주소 설정

아래줄은 --global user.email (email)로 해야하는데 잘못해서 다시 했다.

그리고 git commit을 눌렀더니, 갑자기 vs가 열린다..

주석 내용을 커밋 메시지(비전 메시지)라고 함

* 깃의 본질 중 하나인 버전 생성 방법은 바로 우선 복사하기!
cp A B : A와 똑같은 B를 만든다(copy)
git log : 깃의 역사를 확인하기

commit id와 함께 커밋된 내용이 함께 나옴(3!!!)

* commit과 add : 왜 commit하기 전에 꼭 add를 해야하는가?
commit 하나는 하나의 작업을 담고 있는 것이 가장 이상적이다. 그런데 너무 많은 커밋을 해야할 때 add를 통해서 원하는 커밋만 담을 수 있다.

status를 통해 살펴봤을 때 f1이 modified되고 add되지 않은 상태, 아래에서 add를 하니 빨간 모디파이에서 초록 모디파이로 바뀌었다.

add를 한 파일만이 커밋이됨. 즉

f1은 added, f2는 not added)

이 상태에서 커밋을 하면 f1는 새로운 버전에 포함, f2는 포함되지 않게 됨.
add를 통해 이미 작업한 내용 중 커밋할 것만 추려서 선택적으로 커밋을 할 수 있다!
그리고, add된 commit 대기상태를 stage area라고 함.

2-2. 버전의 효용을 체감하기
1) git log : 역사 보기 - 과거의 내용 찾아보기
여러가지 옵션을 추가할 수 있음. git log -p : 차이점을 상세하게 알려줌

log를 봤을 때 (git log -p) 빨간글씨( souce : 2가 사라지고(-), f1.txt : 4가 생겼다(+))

commit에는 고유한 번호(id같은)가 있음!(노란 글씨)
두 커밋 (id)사이의 차이점을 보기 위해서는 git diff id1 ..id2 : 두 소스 사이의 차이점
(왜 붙여넣기가 안되지...?) : cmd 창에서는 ctrl+c, v가 아니라 ctrl+ins, shift+ins 였다... 몰랐음..

복사 붙여넣기가 ctrl c, v가 아니었다....

작업을 할 때 커밋을 하기 전 문제가 있는지 없는지 마지막으로 리뷰할 수 있는 기회를 준다!
코드 사이의 차이점을 통해 실수가 없는지 파악하기, 이전 커밋과의 차이점!

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