# Git 워크플로 향상하는 15가지 팁

> Clean Markdown view of GeekNews topic #11595. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=11595](https://news.hada.io/topic?id=11595)
- GeekNews Markdown: [https://news.hada.io/topic/11595.md](https://news.hada.io/topic/11595.md)
- Type: news
- Author: [ironlung](https://news.hada.io/@ironlung)
- Published: 2023-10-30T11:45:23+09:00
- Updated: 2023-10-30T11:45:23+09:00
- Original source: [insight.infograb.net](https://insight.infograb.net/blog/2020/10/13/15-tips-for-upgrading-git-workflow)
- Points: 21
- Comments: 0

## Topic Body

- 커밋 비교, 오래된 브랜치 삭제, alias 작성해 시간 절약하는 방법 알아보기  
1. Git aliases  
    - 일상적으로 사용하는 명령어에 alias(별칭) 만들어 터미널에서 작업 시간 절약  
    - 예: git checkout master라고 타이핑하는 대신 co master라고 입력  
    - ~/.gitconfig 파일 직접 수정해 명령어 편집 또는 추가  
2. 명령 프롬프트에서 저장소 상태 확인  
    - 저장소 상태를 보려면 git-prompt.sh 실행  
    - Linux 사용 중이고, 패키지 관리자와 함께 Git 설치했다면 이미 /etc/bash_completion.d/ 디렉터리에 존재할 수 있음  
3. 커맨드라인에서 커밋 비교하기  
    - git diff 명령 사용해 동일한 파일의 버전 간 혹은 커밋 간 차이점 비교  
    - 더 시각적인 도구를 사용해 diff 비교하려면 git difftool 사용할 수 있음  
        - Meld: diff를 시각적으로 비교하는 데 유용한 뷰어/편집기  
4. 커밋되지 않은 변경사항 stash 하기  
    - 완료되지 않은 기능을 커밋하고 싶지 않아 현재 변경 내용을 그대로 보관해야 할 때 git stash 명령 사용해 변경 사항 임시 제거  
    - 수정 작업 완료하고 이전 변경사항으로 돌아오려면 $ git stash pop 실행  
5. 자주 pull 하기  
    - GiLab Flow 사용하면 기능 브랜치에서 새로운 작업 수행함  
    - 기능을 구현하는 데 걸리는 시간에 따라 master 브랜치에 여러 변경 사항이 생길 수 있음  
    - 코드 충돌이 커지는 걸 피하려면 빨리 충돌 피하고 브랜치를 master로 쉽게 merge 하도록 master 브랜치에서 작업 브랜치로 변경 사항 자주 가져와야 함  
6. 커맨드 자동 완성  
    - 자동 완성 스크립트 사용하면 bash, tcsh, zsh에서 커맨드 쉽고 빠르게 사용할 수 있음  
    - git pull 입력하려면 git p와 같이 첫 번째 문자만 입력, tab 누름  
    - 사용할 수 있는 모든 명령 표시하려면 터미널에 git 입력한 다음 tab+tab 누르면 됨  
7. 전역 .gitignore 설정하기  
    - .DS_Store 또는 Vim swp 같은 파일 커밋하지 않으려면 전역.gitignore 파일에서 설정할 수 있음  
8. Git의 autosquash 기능을 기본 설정으로 사용하기  
    - Autosquash 사용하면 대화식 rebase 중에 커밋을 보다 쉽게 squash 할 수 있음  
    - git rebase -i —autosquash 같이 매번 rebase 할 때마다 활성화할 수 있지만 기본 설정으로 켜두는 게 더 편리함  
9. fetch/pull 할 때 리모트에서 제거된 내용을 로컬 브랜치에서 삭제하기  
    - 리모트 저장소에 없어진 브랜치가 로컬 저장소에 그대로 남았을 수 있음  
    - fetch/pull 할 때마다 지우려면 $ git config —global fetch.prune true  
10. Git blame을 더 효율적으로 사용하기  
    - Git blame은 파일에서 누가 어떤 라인을 변경했는지 찾아냄  
    - 옵션  
        - $ git blame -w # 공백 무시하기  
        - $ git blame -M # 텍스트 이동 무시하기  
        - $ git blame -C # 다른 파일로의 텍스트 이동 무시하기  
11. alias 추가해 로컬로 merge request에 체크아웃하기  
    - merge request에는 저장소의 모든 이력과 MR과 연관된 브랜치에 추가된 커밋 포함  
    - 소스 프로젝트가 타깃 프로젝트의 포크일 때 공개된 merge request를 로컬로 체크아웃할 수 있음  
12. HEAD의 alias  
    - @는 HEAD와 동일함. rebase 할 때 사용하면 작업이 훨씬 쉬워짐  
13. 파일 되돌리기(reset)  
    - 코드를 수정하다 이미 변경한 내용에 문제가 있다는 걸 깨달으면 파일 되돌려야 함  
    - 수정한 모든 항목에서 undo 클릭할 필요 없이 파일을 해당 브랜치의 HEAD로 reset 할 수 있음  
        - 예) $ git reset —hard HEAD  
    - 파일 하나만 되돌리려면 다음 명령어 실행  
        - 예) $ git checkout HEAD — path/to/file  
14. git-open 플러그인  
    - 사용 중인 저장소를 호스팅하는 웹사이트에 빠르게 접속하려면 git-open 사용할 수 있음  
15. git-extras 플러그인  
    - 더 많은 명령어를 사용해 Git 사용성 높이려면 git-extras 플러그인 사용  
    - git info(저장소 정보 표시), git effort(파일당 커밋 수) 제공됨

## Comments



_No public comments on this page._
