Branch && 협업
Git & GitHub
README.md
- repo의 사용자를 위한 문서
필수 기재 내용
#Project Name
Abstract your project in few lines. : 한 줄 설명이 가능해야 함
see [project sample pap].(project link)
##Documentation
###Installation
###More Information
###Contributing
###License
.gitignore
- git이 파일을 추척 할 때, 어떤 파일이나 폴더 등을 추척하지 않도록 명시하기 위해 작성함
- Gitignore
- 자신에게 필요한 .gitignore 파일을 검색한 후, 복사 붙여넣기
$touch .gitignore : 숨겨진 파일로 생성
$ls -a : 숨겨진 파일까지 검색
LICENSE
MIT License
- MIT 에서 만든 라이센스, 모든 행동에 제약이 없다
- 관련된 책임에서 자유롭다
GNU General Public License v3.0
- 가장 많이 알려져 있음
- 의무사항이 존재
- 비추천(사용할 때 조심해야한다.)
git 은 습관이 가장 중요
Branch
$git branch 이름 : 해당 이름을 가진 branch 생성
$git swith 이름 : 해당 이름을 가진 branch로 이동
$git branch : 현재 위치한 branch 확인
$git merge 이름 : merge 는 당기는 행위, 옮기고 싶은 branch로 먼저 이동 후, 당길 branch 명을 입력
$git branch -D 이름 : 사용이 끝난 branch 바로바로 삭제!
$git push -u origin 파일명 : local 의 branch 와 remote 의branch 가 같음을 이야기해줌 (-u)
Branching models
Git Flow
- 가장 흔하게 사용하는 모델
- (hotfix : 오류 발생, 긴급 패치) - main - (release : test, 프로덕션을 위한 작업 장소) - develop : 개발하>는 장소 - feature : develop 전 작업 하는 장소
- 참고 사이트 git flow
$git flow init : flow 설치, 쭉쭉 엔터 누르고 develop 에 위치하면 OK!
충돌 발생?
$git branch 이름 : 해당 이름을 가진 branch 생성
$git swith 이름 : 해당 이름을 가진 branch로 이동
$git branch : 현재 위치한 branch 확인
$git merge 이름 : merge 는 당기는 행위, 옮기고 싶은 branch로 먼저 이동 후, 당길 branch 명을 입력
$git branch -D 이름 : 사용이 끝난 branch 바로바로 삭제!
$git push -u origin 파일명 : local 의 branch 와 remote 의branch 가 같음을 이야기해줌 (-u)
$git flow init : flow 설치, 쭉쭉 엔터 누르고 develop 에 위치하면 OK!
Rename
$mv server.js main.js : 이름을 바꿀려고 했는데, 삭제로 인식됨. 사용 X
$git mv server.js main.js : 이름이 변경, 다시 commit 시 fix: ~~ 로 작성,
다른 사람들이 체크를 할라고 알려주는 것, 연결된 다른 기능 작동이 안될 수 있기 때문에!!
Undoing
$git restore 파일명 : 수정후 저장한 파일이, add 하기전에 실행시,
저장된 파일을 최신 상태의 commit으로 돌아감
Unstaging
$git reset HEAD {파일명} : add 한 파일을 취소함. HEAD = 최신
Edit latest commit
$git lg : 최신 commit 된 내용을 확인
$git commit --amend : commit 의 내용을 수정
- 만약 lg시 안 보이면, git log 하세요
- 근데 내용이 너무 많으면!!
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"
- 이거 그대로 복사해서 해주면 되요~ !!
Reset Commit 비추천
-commit 을 삭제한 후, remote에 강제 push 됨
-삭제를 하였으나, 다른 cloned repo 에 존재하는 commit log 로 인해 파일이 다시 살아날 수 있음
-과거 이력이 사라져서 왜 오류가 생겨서 삭제한 이유를 알 수 없음
-잘못한 이력도 commit 으로 남겨서 수정한 이력을 남기자!!
-탕비실 주의 ...
Revert commit
-현재 HEAD 에서 원하는 만큼의 commit을 순서대로 거슬러 올라간 후 commit, push 수행
$git revert --no-commit HEAD~3.
-
no-commit 을 작성해서 모든 revert 가 끝나고 한번에 commmit 예정
-
HEAD~3. : 최신(HEAD)의 branch 에서순차적으로(.) 3개의 commit 을 거슬러 올라가요!!
-
잘못하기 전 과거로 돌아가 최신을 유지하면서 되돌렸다는 이력을 commit 내용으로 남겨자!
Version 뒤의 숫자 차이점
v0.1 ? 마이너 수정, 삭제, 추가 등 기능의 변화
v1.0 ? 메이저 완전히 전 버전에 비해 발전한 경우, 호환이 불가능한 경우
코딩 테스트 추천 사이트
Author And Source
이 문제에 관하여(Branch && 협업), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@huisu0429/Branch-협업저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)