터미널에서 거의 매일 사용하는 깃허브 커맨드
물론 소스코드 같은 GUI를 사용하긴 하지만 터미널에서 하는게 더 편할때가 있다.
나 같은 경우 항상 터미널에서 사용하는 정형화된 커맨드가 있다.
깃허브 레파지토리의 상태를 로컬에서 최신화시켜주기 위해서
branch를 develop으로 이동(`git checkout develop`)한 후 `git pull origin develop` 을 자주 쓴다.
그리고 깃허브로 branch를 push 할때도, 다른 branch를 베이스로 두지 않는 이상
develop에서 먼저 최신화시켜주고 rebase 한다음 push 해준다.
그러다 어제 문득 이런생각이 들었다. branch 왔다갔다하면서 적는거 너무 비효율적이지 않은가...
그냥 alias 설정해서 커멘드 한번에 다 처리하게 만들 수 있지 않을까?
그래서 zsh에서 alias를 설정해봤다!
우선 터미널에서 zsh 설정파일을 열어보자.
oepn ~/.zshrc
기존 설정파일의 내용을 삭제하거나 수정하지 않았다면, 친절하게 alias 설정방법을 알려주는 글을 볼 수 있다.
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
`alias {커멘드별칭}="{실행되어야 할 커맨드}"`
이렇게 설정해놓으면, 터미널에서 커맨드별칭(alias)만 입력해도 뒤에있는 커맨드들이 실행이 된다.
그럼 develop branch 최신화를 위한 alias 를 먼저 설정해보자.
커맨드라인이 여러줄 들어갈땐 커맨드라인 사이에 `&&` 을 넣어주면 된다.
alias gpull='git checkout develop && git pull origin develop'
내가 어떤 branch에 있든지 터미널에서 `gpull` 을 입력하기만 하면, develop branch로 이동해서 origin의 상태를 가져온다!
두번째로 하고싶은 alias 설정은 `gpull` 보다는 복잡하다.
1. 우선 develop으로 branch를 이동시켜서 (`git checkout develop`)
2. develop을 최신화 시켜야하고 (`git pull origin develop`)
3. 다시 원래 branch로 돌아가서 (`git checkout ${branch}`)
4. 깃레파지토리에 그 branch이름으로 push해야한다. (`git push origin ${branch}`)
그러기 위해서 이 branch를 따로 설정을 해줘야한다.
찾아보니 변수를 따로 설정할 수 있는 방법이 있었다!
스니펫설정할때처럼 $1, $2 이런식으로 설정할 수 있다.
alias gpush='git checkout develop && git pull origin develop && git checkout $1 && git rebase develop && git push origin $1'
`gpush feature/issue#25` 이런식으로 명령어를 입력하면,
develop 최신화하고, 그 develop rebase하고, origin/feature/issue#25에 push 하는것까지 한번에 처리해준다.
rebase에서 충돌나면 직접 충돌해결하고 push는 다시해줘야하지만...
그래도 develop으로 왔다갔다안해도 된다는점에서 편하다
자주 쓰던 명령어들을 한줄로 해결해서 너무 좋다 😊
댓글 영역