- 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 파일 등록)
- 1) SSH-Keys 생성
- CentOS :
- 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 으로 정확히 타이핑)
- ... or create a new repository on the command line
- 써브모듈
- 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 |