• git 이란?
    • "하카타 원숭이 킥킥이도 따라 할수있는!! 짓..." (https://backlog.com/git-tutorial/kr)
    • 몇몇내용
      • HEAD란, 현재 사용중인 브랜치의 "머리(선두)"를 의미. (HEAD를 기준으로 '특정commit'을 가르킬수있음)
      • pull은, fetch + merge 이다. (fetch는 origin/master의 최신 commit 이력을 로컬에 가져오고, FETCH_HEAD로 체크아웃 가능)
      • merge(fast-forward)
        • 예) A -> B
        •                 \ -> X -> Y(마/픽)
        • (옵션을 줘서, non fast-forward 형태도 가능) 
      • merge(non fast-forward)
        • 예) A -> C -> D -> ---> E(마)
        •          \ -> X -> Y(픽) -> /
        • (non fast-forward 경우, 히스토리가 복잡해지지만... branch의 이력을 모두 남기기 떄문에~ 관리측면에서 장점)
      • rebase
        • 예) A -> C -> D(마) -> X' -> Y'(픽)
        •          \ -> X -> Y(사라짐! 말그대로 재배치!)
        • (X' Y' 리베이스 과정에서, 기존코드와 충돌이나면~ 당연히 수정수습 하면 됨)
        • (rebase 이후, '마스터'는 -> '픽스'로 fast-forward 하면 됨)
      • ('통합브랜치'에 <- '토픽브랜치'를 적용할 경우에는, checkout토픽 -> rebase -> checkout통합 -> fast-forward merge)
      • ('토픽브랜치'에 <- '통합브랜치'를 적용할 경우에는, 바로 rebase)
    • 잡다구리
      • git log --graph --oneline // 콘솔 히스토리
      • git branch -d // 브랜치 삭제
      • git reset --hard HEAD // 마지막 헤드 취소
      • git rebase --continue // rebase 충돌후, 충돌을 수정하여 commit (non-fast-forward)
      • git rebase --abort // rebase 취소
      • git stash // WorkTree 와 Index 에 commit되지 않은것들을~ 임시로 치움
      • git rebase --interactive // 그... PDF 자료에 설명
    • remote origin 강제수정
      • 1) git reset --hard c779d99629ea0251a8be02e615e210eb5b9fdefc // local을 원하는 commit-hash으로 되돌림.
      • 2) local에서 수정할 부분이 있으면... 수정한다.
      • 3) git push -f origin c779d99629ea0251a8be02e615e210eb5b9fdefc:release/PROD // remote를 강제로 되돌림.
  • 설치
    • CentOS :
      • sudo yum update
      • sudo yum install git
      • git --version
      • git config --global user.name "사용자"
      • git config --global user.email "이메일"
      • git config --list
    • Windows :
      • 다운받아서 잘 하면 됨...
        • Git-Bash 에서만, git 명령어 사용.
        • 윈도우cmd 에서도, git 명령어 사용. (환경변수 자동등록 해줌)
        • 윈도우cmd 에서도, git 및 unix 명령어 사용. (환경변수 둘다 자동등록 해줌)
      • 서버별, https 자격증명(ID/PW) 설정
        • 제어판 -> 사용자 계정 -> 자격 증명 관리 -> 일반 자격 증명
      • PC에, ssh 자격증명(Pri/Pub 키) 설정
        • 1) SSH-Keys 생성
          • Git-Bash 에서, ssh-keygen 명령어 실행
          • 예) ssh-keygen
          • 예) ssh-keygen -t rsa
          • 예) ssh-keygen -t rsa -b 4096 -C "email@email.com"
          • (C:\Users\Administrator\.ssh 에 public 및 private 키 생성됨) 
        • 2) Git Repository에 Pub키 등록
          • public 파일내용 복사 및 등록
        • 3) SourceTree 설정
          • SSH 클라이언트 설정 (OpenSSH으로 private 파일 등록)
  • Quick setup
    • ... or create a new repository on the command line
      • echo "# temp" >> README.md
      • git init
      • git add README.md
      • git commit -m "first commit"
      • git branch -M main git remote add origin https://github.com/.../test.git git push -u origin main
    • ... or push an existing repository from the command line
      • git remote add origin https://github.com/.../test.git
      • git branch -M main
      • git push -u origin main
    • ... or import code from another repository
      • You can initialize this repository with code from a Subversion, Mercurial, or TFS project.
    • (fingerprint… → yes 으로 정확히 타이핑)
  • 써브모듈
    • https://ohgyun.com/711
    • TODO : ...
    • git submodule add <repository> [path]
    • git submodule init
    • git submodule update
    • 써브모듈 tag checkout
      • 해당 /submod 이동 -> git checkout tag/v1.0.0 -> (해당 해쉬값 바뀜) -> 깃 푸쉬
      • (별도의 배포환경에서) ->  git submodule update --init 하면, 해당 해쉬값으로 동기화.
    • ...

-끝-

'DevOps' 카테고리의 다른 글

Dockerfile  (0) 2020.07.09
Docker-Swarm  (0) 2020.04.06
Kubernetes 란?  (0) 2019.11.04
Docker 란?  (0) 2019.11.04
maven  (0) 2019.10.23

+ Recent posts