Git rebase | iterm 명령어

엄문주·2020년 12월 1일
2

Git

목록 보기
1/1

iterm 🧑‍💻

개발 공부를 하게 되면, 터미널은 당연히 사용할 줄 알아야 한다.
그런데... 잘 모른다... 아니 잘 몰랐다.
먼져 맥을 구매하게 되면, Launchpad에 보면 터미널이 있는 것이 보인다.
처음 개발 공부할 때는 그냥 터미널을 사용하게 되는데, 주위 사람들이 형형색색의 터미널을 사용하는 것을 보면, "저게 뭐지??" 찾아보게 되는데, 그게 바로 iterm이다.
iterm 또 다른 터미널이라고 생각하면 된다. 하지만 기능이 터미널 보다 더 많다. 색깔을 바꿀 수도 있고, 화면 분활도 할 수 있다. 특히 git을 사용한다면, 내가 어떤 branch에 있는지 보기 좋게 확인 할 수 있기 때문에, 개발을 하는 사람들은 대부분 사용을 한다. 아래 링크로 들어가면, 설치할 수 있다.

근데...입력, 수정이 안되는 오류? 를 겪게 될 것이다... 반드시...
나는 iterm을 설치하고 여러번의 고통을 겪었는데,
첫 고통은 vi ~/.zshrc 이 명령어에서 시작된다.
oh my zsh 설정을 하기 위해서는 위의 명령어를 통해서 설정에 들어가야 하는데, 나는 계속해서 denied 되었다는 글만 나타났었다. 이유를 확인해보니, 모든 폴더에 접속권한을 주지 않아서 그렇게 되었다는데... 나는 분명히 권한을 다 주었었다. stack over flow를 확인해 보니, 여러가지 방법이 있었으나...
나는 open /.zshrc를 추천한다.
두번째 고통은 git을 사용할 때 이다. 글자가 입력이 안되고 수정도 안되는 경우가 발생하였다. 특히 git rebase를 하는 과정에서 글자들이 수정이 안되는 현상이 발생했다. 아무리 글을 쳐도 수정이 되지 않고, 삭제도 되지 않고...
유심히 확인해 보니 "a" 키를 입력하니 아래 insert 가 생기는 것을 확인 했다. 그리고 esc 버튼을 누르니 없어지고... insert가 생겼을 때는 글자를 수정할 수 있으나, insert가 없으면 글자를 수정할 수 없다. 분명히 나와같은 고통을 겪는 분들이 있을텐데... 제발 내 글을 보고 고통을 받지 않았으면 좋겠다.

Git Rebase 🧐

iterm을 이야기 하다 git rebase를 이야기 하는게 웃기긴 한데...
git rebase를 하다가 발생한 문제이기 때문에 연관지어서 계속해서 설명을 하겠다.
일단 git rebase는 git에 계속 싸이는 commit을 관리하기 위한 명령어 이다. 아래 명령어를 입력하면 내가 입력한 commit들을 확인 할 수 있는데, 이 것들을 하나로 합쳐줄 필요가 있다. 이 때 사용하는 것이, squashed 이다. 내가 올린 commit들을 보면 앞에 pick이라는 글자가 보일 것이다. 이것들을 s로 변경을 해주고, 저장하고 나가면, 성공이라는 글자를 볼 수 있을 것이다...
하지만, 만약 실패를 했다거나, rebase -i 라는 글자를 본다면 아래 rebase를 계속하겠다는 명령어를 입력해서 어떤 문제가 있는지 확인해 보아야 한다. 일반적으로 :wq(저장) 하지 않아서 발생하는 것 같은데, 저장하는 것을 잊지 않기를...
성공이라는 글자를 보면, 내가 commit한 글자들이 보일텐데, 이것들은 원하는 글로 변경하면 된다. 예) squashed commit
근데, 처음 이렇게 하고 push하면 잘~ 되는데.... 두번째 부터 push를 하게 되면, iterm에서 reject가 되었다는 글을 볼 수 있을 것이다. 처음 올린 commit과 후에 올린 commit을 git이 같은 거라고 인식하기 때문이다. 왜냐하면, 같은 시기에 올렸기 때문이다. 물론 우리는 변경된 것을 알지만, git은 모른다... 그렇단다... 그래서 강제적으로 push를 해야 하는데, 이 때는 뒤에 -f, --force를 붙여주면 된다. 그러면 강제적으로 밀어넣는다.

제 글을 읽는 분이 계시다면, 도움이 되기를 간절히 바랍니다. 저는 엄청난 고통을 받았기 때문에, 저와 같은 고통을 받는 분이 계시지 않기를...

git rebase -i main : rebase 실행 명령어
git rebase --continue: rebase를 계속하겠다.
git push origin branch이름 -f

git pull origin main
git merge main

iterm: https://iterm2.com
oh my zsh: https://ohmyz.sh

profile
세상과 소통을 꿈꾸는 개발자

0개의 댓글