Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • local branch upstream 설정
    • $ git branch --set-upstream-to=origin/<remote branch name> <local branch name>
    • push
      • $ git push origin HEAD:<remote branch>
  • local branch 변경 사항 remote master 에 push 하기
  • Windows 에서 사용 시 (Unix 공용 시 LF 사용 추천)
    • git diff 시 ^M 무시하기
      • $ git config core.whitespace cr-at-eol
    • crlf 자동 변환
      • $ git config --global core.autocrlf true
    • crlf warning 없애기
      • $ git config --global core.safecrlf false
  • tagging
    • tag 확인하기
      • git tag
    • tag 달기
      • git tag 1.0
      • or git tag -a 1.0 -m "Release 1.0"
    • push
      • git push --tags
    • tag 삭제
      • git tag -d 1.0
    • remote tag 삭제
      • git push origin :1.0 (띄어쓰기 주의)
  • commit 에 verified 달기
  • gpg signature
    • 본인 키 보기
      • gpg --list-secret-keys --keyid-format LONG
    • git commit -S 으로 사인할 gpg key 설정
      • git config --global user.signingkey [keyID]
    • 설정한 key로 자동 사인하도록 설정 (-S 안 붙이기)
      • git config --global commit.gpgSign true

설정

...

  • commit tool 변경
    • git config --global core.editor vim
  • diff tool 변경
    • git config --global diff.tool vimdiff
  • git diff 에 자동줄바꿈 word wrap 적용
    • git config --global core.pager 'less -r'
  • git apply 할 때 "1 line adds white space errors." 경고 나올 때,
    • git config --global apply.whitespace nowarn
  • $ vi ~/.gitconfig
    • Panel

      [user]
      email = gencode.me@gmail.com
      name = KJ Kim
      [core]
      editor = vim
      pager = less -r
      [diff]
      tool = vimdiff
      [push]
      default = simple
      [apply]
      whitespace = nowarn

...

  • patch 파일 만들기
    • git format-patch -1 --binary (가장 최신 commit 한 개)
  • patch 적용
    • git apply -p1 < [패치파일]  (패치파일 한 개 적용)
  • .gitignore 에 추가한 파일이 계속 나올 때
    • $ git rm -r --cached <file or folder>
  • git pull 할 때마다 Why merge 해야 되냐고 explain 하라고 나올 때
    • git pull --no-edit
  • git 통계
    • git ls-files | xargs wc -l
  • git commit 취소/삭제
    • git reset HEAD~<취소할 commit 개수>
    • 취소한 commit push (remote respository commit 삭제)
      • git push -f origin master
    gpg signature
    • 본인 키 보기
      • gpg --list-secret-keys --keyid-format LONG
    • git commit -S 으로 사인할 gpg key 설정
      • git config --global user.signingkey [keyID]
    • 설정한 key로 자동 사인하도록 설정 (-S 안 붙이기)
      • git config --global commit.gpgSign true

git auto versioning

...

  • commit 할 때 자동으로 버전 넘버 업데이트하기
    • 버전넘버는 <tag>.<revision> 으로 구성
      • 큰 버전 업데이트 시 수동으로 tagging
      • 작은 버전은 commit 개수가 자동으로 업데이트
    • 태그달기 (큰 버전)
      • git tag 0.1
    • commit 수 (작은 버전)
      • git log --oneline | wc -l
    • 버전 출력 형태
      • 0.1.60
  • git hooks 스크립트로 commit 시 버전 자동 업데이트 하기
    • Code Block
      languagebash
      title.git/hooks/pre-commit
      #!/bin/bash
      revisioncount=`git rev-list --count master`
      projectversion=`git describe --tags --long`
      cleanversion=${projectversion%%-*}
      
      echo "$cleanversion.$revisioncount" > VERSION
      git add VERSION
  • commit 후 버전 출력

    • Code Block
      languagebash
      title.git/hooks/post-commit
      #!/bin/bash
      cat VERSION
  • 이후 commit 할 때 마다 project의 VERSION 파일이 자동으로 업데이트 됨

...