간단하게 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을 없애버릴 수 있습니다.
- 참조
https://velog.io/@sonypark/git-reset-vs-git-revert-%EC%B0%A8%EC%9D%B4
https://blog.naver.com/codeitofficial/221950118036
'개발 > 잡다개발' 카테고리의 다른 글
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 |