git 연습
source tree 이용
얄팍한 코딩 사전
가장 쉬운 Git 강좌 - (상) 혼자작업편
https://www.youtube.com/watch?v=FXDjmsiv8fI
🖐
git add . = git add -A
📌 과거로 돌아가기
🔥 reset -- hard
첫번째 커밋은 java class 파일
두번쨰 커밋은 cat, dog, mouse 등을 만든 커밋
첫번째 커밋으로 돌아가고 싶다면 commit된 문자의 앞 6자리를 따와서 git reset 6자리 --hard 로 선언한다.
파괴적인 방법으로,
위와 같이 해당 시점까지의 commit이 전부 지워져버린다.
다른 예)
3개의 커밋이 처음 시점으로 reset을 하니 다 지워져버렸다.
다른 사람과 공유하는 브랜치에서는 reset --hard로 커밋을 지우면 안 된다.
🔥 revert
revert는 현재의 commit은 그대로 저장하고, 수정할 시점의 커밋을 다음 이력으로 가져온다.
즉, 현재 시점은 묻어놓고 과거 시점의 커밋을 다음 커밋으로 가져온다.
revert infinite로 revert하니까, 해당 commit의 코드가 가져와지고 새로운 commit이 생성된 것을 볼 수 있다.
만약 revert를 할 때 바뀐 내용이 있다면 위와 같이 change에 대한 내용을 출력해준다.
참고 블로그
https://velog.io/@sonypark/git-reset-vs-git-revert-%EC%B0%A8%EC%9D%B4
📌 branch
git branch : branch 주소들 보기
git checkout 브랜치 이름
git merge 통합할 branch의 이름
현재 checkout된 branch, current branch에서 [ git merge ] 다음에 나오는 branch의 주소를 통합하는 것이다.
master branch에서 t1 branch의 내용을 통합해보자.
git merge t1
그런데 둘의 내용은 다른 내용이 있으므로 충돌이 발생한다.
merge를 돌리고 싶으면 아래와 같이 --abort option을 주면, merge가 돌아간다.
git merge --abort
git log --graph --all --decorate 명령어를 하면
이렇게 시각화 된 두 분기에서의 그래프를 볼 수 있다.
📌 rebase
실제 프로젝트를 진행할 때는 위와 같이 수 많은 갈래들이 생기게 된다.
이럴 때, 변경 내역들이 한 줄로 딱 깔끔하게 정리됐으면 좋겠다 싶을 때 merge 대신 rebase를 사용한다.