21P by ironlung 2023-10-30 | favorite | 댓글과 토론
  • 커밋 비교, 오래된 브랜치 삭제, 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(파일당 커밋 수) 제공됨