개발/잡다개발

git 명령어 정리 - 1

개복치 개발자 2021. 9. 8. 02:31

 간단하게 git을 사용하는 방법을 알아보겠습니다.

 

 git init

 git add "파일명"

 git commit -m "message"

 

 까지 하면 로컬에 데이터가 저장됩니다.

 

 여기까지 하는것은 다 알고 있을테니 branch, revert, reset, stash, conflict가 났을 때의 대처법등을 알아보겠습니다.

 

 그리고 pull, push, fetch등에 대해서도 알아봅니다.

 

 

 일단 f1.txt파일을 만들어서 git status를 해보니 Untracked되었다고 나옵니다.

 

 자, 이걸 git add, git commit 을 해서 올려보겠습니다.

 

 

 한개 파일이 잘 올라간 것을 볼 수 있습니다.

 

 그러면 파일을 2번 변경해서 git commit을 날려보겠습니다.

 

 첫번째는 f2파일 생성

 두번째는 f2파일 내용 수정했습니다.

 

 git log 로 살펴보겠습니다.

 

 

 위와 같이 파일 수정한 내역들이 나옵니다.

 

 그러면 어떤 부분이 어떻게 변경되었는지 한번 자세하게 살펴볼까요?

 

 git diff [비교할hash1] [비교할hash2] 라고 하면 

 

 

 이렇게 변경된 부분이 나옵니다.

 

 여기까지 해보면 이거 commit을 어떻게 되돌리지? 라는 의문이 들 겁니다.

 

 reset이라는 것을 이용해서 되돌리는데 여기에 여러가지 옵션이 있습니다.

 

 git reset --soft

 git reset --mixed

 git reset --hard

 

 이렇게 있는데 각각의 차이점들을 한번 볼까요?

 

 이 것들을 알아보기 전에 단어를 정리하고 가면

 

 working directory -> Add하기 전 상태

 staging area -> Commit하기 전 상태

 

 soft

 

 - HEAD가 특정 커밋을 가르키게 되는데, 현재 working directory와 staging area는 영향이 없습니다.

 

 mixed

 

 - HEAD가 특정 커밋을 가르키게 되는데, staging area도 해당 커밋과 동일하게 변합니다. working directory는 영향이 없습니다.

 

 hard

 

 - HEAD가 특정 커밋을 가르키게 되는데, staging area와 working directory도 동일하게 변합니다. 함부로 쓰면 큰일나는 경우가 생길 수도 있습니다.

 

 자, 그렇다면 hard를 사용해서 현재 작업하는 것을 변경해보도록 하겠습니다.

 

 git reset --hard <commit hash> 를 집어넣어주면 됩니다.

 

 git log 로 데이터를 찍어봐도 지워진 것을 볼 수 있습니다.

 

 reset말고도 revert라고 되돌리는 방법도 있습니다.

 

 reset과 revert에 차이를 잠시 살펴보면

 

 reset : 특정 커밋으로 되돌림 (시간을 이전으로 돌림)

 revert : 특정 커밋을 없던 일로 할 수 있음. (시간의 한순간을 없던 일로 해주기)

 

 그러면 어떨 때, reset과 revert를 쓸까 생각해보면

 

 이미 PUSH를 날렸으면 reset은 의미가 없습니다. 이미 push가 되었기 때문이죠. 그럴 때는 revert를 사용합니다.

 

 git revert <commit hash>

 

 를 집어넣으면 해당 commit을 없애버릴 수 있습니다.

 

 

 

 

 - 참조 

 

http://www.devpools.kr/2017/01/31/%EA%B0%9C%EB%B0%9C%EB%B0%94%EB%B3%B4%EB%93%A4-1%ED%99%94-git-back-to-the-future/

 

개발바보들 1화 - git "Back to the Future"

  이 내용에 대한 자세한 기술적인 설명이 듣고 싶나요? 연속되는 다음글을 참조하세요    

www.devpools.kr

 

https://velog.io/@sonypark/git-reset-vs-git-revert-%EC%B0%A8%EC%9D%B4

 

git reset vs git revert 차이

git reset 명령어에는 아래 세 가지 옵션을 줄 수 있다.1.soft: commit된 파일들을 staging area로 돌려놓는다. — commit 하기 전 상태2.mixed(default): commit된 파일들을 working directory로 돌려놓는다.

velog.io

https://blog.naver.com/codeitofficial/221950118036

 

[코드잇] git reset의 3가지 옵션 제대로 이해하기

여러분은 Git을 쓸 때 git reset 커맨드를 얼마나 자주 사용하시나요? git reset은 HEAD의 위치를 현...

blog.naver.com

 

'개발 > 잡다개발' 카테고리의 다른 글

h2 database란  (0) 2023.06.24
git 명령어 정리 - 2  (0) 2021.09.08
파스텔톤 hex코드  (0) 2021.04.12
IOS Admob testID는 되는데 realId가 안될 때  (0) 2021.01.01
css 말풍선 만들기  (0) 2020.12.21