목차
- CLI 개념
- Git 개념
- Gi으로 버전 되돌리기
- Github 개념
- Github 협업하기 (1)
- Github Profile 꾸며보기
1. CLI 개념
(1) CLI
Command Line Interface
Graphic User Interface
CLI에 익숙해지기
(2) 터미널 이용해 폴더 만들기
명령어
- '~' : root 폴더 경로로 맥북/Users/(유저명)
- ls : 현재 위치 디렉토리의 파일/폴더 목록 (list segments)
- pwd : 현재 위치 디렉토리
- '.' : 현재 폴더(디렉토리)
- '..' : 한단계 위 디렉토리를 나타낸다.
- rm -rf : 폴더의 모든 파일까지 포함해 삭제
- rm : 파일만 삭제
경로
- 상대 경로 : 현재 위치 중심
- 절대 경로 : root 중심
@-MacBookAir test % mkdir 0
@-MacBookAir test % mkdir 1
@-MacBookAir test % cd 0
@-MacBookAir 0 % mkdir 0
@-MacBookAir 0 % mkdir 1
@-MacBookAir 0 % mkdir 2
@-MacBookAir 0 % cd ..
@-MacBookAir test % cd 1
@-MacBookAir 1 % mkdir 3
@-MacBookAir 1 % mkdir 4
2. Git 개념
버전의 이동이 가능한 Git
최종 <-> 1차 < -> 2차
홈브루를 이용해 git 설치
brew install git
git --version
(1) 명령어의 역할
- git add : 관리할 파일을 git에 추가
- git commit : Git에 하나의 버전으로 저장
commit 버전 간에는 이동이 가능하다.
revert : 버전 되돌리기
(2) IDE의 터미널에서 사용
깃으로 관리할 폴더로 이동 후,
git init : 해당 폴더를 깃에서 관리가능한 폴더로 지정
init 후에 add, commit과 같은 명령어 가능
git add . : 해당 폴더의 모든 파일을 깃으로 관리
git status : add가 잘 되었는지 확인
untracked files present라고 뜨는 경우 추적을 하지 않는다.
add 후 commit하면 되지만, 처음 깃을 사용할 때에는 blame 기능을 위해 사용자 설정
(3) 깃에 사용자 설정
git config --global user.email "(유저이메일)"
git config --global user.name "(유저명)"
6. 깃에 커밋 메시지 추가하기
- 커밋 타입 : 동작 기능 이름 / 함수 이름
- 어떤 함수의 어떤 기능인지 명시하는 기능으로, 업무 파악을 위해 구체적으로 명시해야 한다.
커밋 타입의 종류
- feat : 새로운 기능 추가
- fix : 버그 수정
- docs : 문서 수정
- style : 코드 formatting, 세미콜론(;) 누락, 코드 변경이 없는 경우
- refactor : 코드 리팩터링
- test : 테스트 코드, 리팩터링 테스트 코드 추가(프로덕션 코드 변경 X)
- chore : 빌드 업무 수정, 패키지 매니저 수정(프로덕션 코드 변경 X)
- design : CSS 등 사용자 UI 디자인 변경
- comment : 필요한 주석 추가 및 변경
- rename : 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
- remove : 파일을 삭제하는 작업만 수행한 경우
- !BREAKING CHANGE : 커다란 API 변경의 경우
- !HOTFIX : 급하게 치명적인 버그를 고쳐야 하는 경우
콘솔 출력
[master (최상위-커밋) 1cfb368] Feat : Create HelloWorld
1 file changed, 1 insertion(+)
create mode 100644 hello.txt
+) 커밋 메시지 수정하기
$ git rebase -i <commit>
지정한 커밋보다 이후의 커밋을 지정하면, 커밋의 목록이 표시됩니다. 그 중에서 코멘트을 수정하려고 하는 커밋을 찾아 그 행 pick 문자를 edit로 변경하고 저장 · 종료합니다.
다음 --amend 옵션을 지정하여 커밋을 실행합니다. 코멘트 입력 화면이 표시되므로 코멘트를 수정합니다.
$ git commit --amend
마지막으로 --continue옵션을 지정하여 rebase를 실행합니다.
$ git rebase --continue
7. 파일 수정 후, 변경 사항 저장하기
- 파일 수정
- git add . : 수정사항을 스테이징 영역으로 반영하기 위한 명령어
- git commit -m" (커밋 메시지)"
[master 73b8b86] docs : modified
1 file changed, 1 insertion(+), 1 deletion(-)
커밋은 기능 단위로!
여러 기능을 동시에 커밋해야할 때 지켜야할 원칙 :기능 1번 관련 파일만 선택해 add 후, 커밋
기능 2번 관련 파일만 선택해 add 후, 커밋
8. 여러 기능 동시 커밋해야할 때, 기능 단위로 커밋
- 기존의 hello.txt 수정하고, 새로운 new.txt 작성
- new.txt 파일만 add
- add 한 스테이징 영역만 commit 수행
@-MacBookAir prc % git add new.txt
@-MacBookAir prc % git commit -m"Feat : only commit this file"
[master f3781d1] Feat : only commit this file
1 file changed, 1 insertion(+)
create mode 100644 new.txt
9. 로그 보기
- git log : 자세한 커밋 정보 출력
- git log--oneline : 커밋 로그만 출력
3. 이전 버전으로 되돌리기
- revert : 되돌리고 싶은 commit으로 해당 코드는 사라지고 그 이전 버전으로 이동하며, 해당 커밋 기록은 남는다.
- reset : 되돌아가고 싶은 commit으로 이동
- git reset --soft : (소프트 리셋) 수정 사항은 두고 (add된 상태, 저장은 하지 않은 스테이징 영역), 커밋 기록만 사라짐
- git reset --mixed : 수정 사항은 두고 add도 되지 않는 상태 (자주 사용하지는 않는다)
- git reset --hard : (하드 리셋) 수정 사항과 커밋 기록 모두 사라짐
- git reset --soft : (소프트 리셋) 수정 사항은 두고 (add된 상태, 저장은 하지 않은 스테이징 영역), 커밋 기록만 사라짐
revert를 하게 되면, 커밋 메시지도 수정할 수 있는데 vim 편집기를 사용한다.
vim 편집기 : 터미널에서 사용하는 편집기
- (esc 후) i → insert 모드 : (커서가 있는 부분부터) 파일 내부의 내용을 작성, 수정할 수 있습니다.
- (esc 후) dd → (커서가 있는 부분의) 행을 삭제합니다.
- (esc 후) :wq → 파일을 저장하면서 에디터를 종료합니다.
- (esc 후) :q → 파일을 저장하지 않고 에디터를 종료합니다.
4. Github
리포지토리
- Public : 커밋 기록 공개
- Private : 커밋 기록 비공개
리포지토리의 구분
- remote repository : github의 리포지토리
- local repository : 실제 리포지토리
원격 저장소와 로컬 저장소 연결
- 원격 저장소 생성
- 로컬 저장소에서
- git init
- git add (추가할 파일)
- git commit -m"커밋 메시지"
- 로컬 저장소와 원격 저장소와 연결하기
- git remote add orgin (리포지토리 저장소 주소)
- git remote -v : 연결한 리포지토리 주소 출력
- 브랜치 지정하기
- 기본 브랜치는 master
- git push origin (branch명)
- 해당 브랜치를 이용해 원격 저장소로 업로드
- 로그인 방식
- username/Password 이용 (username : 이메일 주소가 아닌 유일한 자신의 이름)
- SSH key를 이용한 로그인도 가능
- git pull origin (branch명)
- 깃허브에서 작성한 파일을 로컬 저장소에 다운로드
- pull오류 발생시
- 커밋 혹은 스태시 이용하는 방법 : git stash 후, 다시 git pull origin master
- 스테이징 영역에 저장하는 방법 : git add로 staging 영역에 저장하고, git pull 작업한다.
read.md 작성하기
마크다운 문법을 이용해 작성
포트폴리오를 위한 목차
- 프로젝트 간단 요약
- 프로젝트 정보/개요 (진행 기간 / 목표 / 팀원)
- 프로젝트 설명 (구현한 기능 및 사진 등)
- 사용한 기술 스택
5. Github로 협업하기 (1)
1. 협업자로 등록하기
- 협업하고자 하는 리포지토리로 이동
- Settings
- Add a collaborator
2. 다른 프로젝트에 참여하는 방법
- git clone "리포지토리 주소"
- 클론은 누구나 가능하지만 push는 협업자만 가능
- 클론한 폴더에서 pull을 통해 리모트 저장소에 올라온 코드를 내려받을 수 있다.
- merge를 수행하는 협업
3. 일반적인 협업 방식
- 팀장이 repo를 만든다.
- 해당 repo의 clone해서 작업을 수행하는 방식
4. fetch를 이용한 협업
- pull과는 달리 merge 방식이 아닌, 먼저 수정사항을 가져온다.
- git fetch
- 원하는 branch에서 수정 내역을 받아온다.
- git branch -r : 브랜치 목록 출력
- git checkout origin/master : origin/HEAD -> origin/master branch 전환
5. fork를 통한 원격 저장소 복제
- 다른 사람이 리포지토리를 가져와서 자신의 저장소로 관리하는 방법
- 원하는 repo를 fork한다.
- fork한 리포지토리를 자신의 저장소에서 작업을 수행한다.
- pull request : 수정한 사항을 반영해달라고 요청하는 작업
- pull request를 수락하게 되면, 해당 리포지토리의 contributor가 된다.
- fork를 이용하면, 바로 원본에 접근하는 것이 아니라 팀마다 하나의 repo를 관리할 수 있다.
-> 대규모 프로젝트에서 사용한다.- 원본 repo의 안전한 관리
- 팀/사람 단위로 작업 관리
'Server Programming > BackEnd Project' 카테고리의 다른 글
4일차. Git 관리 전략을 활용한 협업 (0) | 2022.12.15 |
---|---|
3일차. GitHub를 이용한 협업 (2) (0) | 2022.12.14 |
2일차. TIL (0) | 2022.12.13 |
1일차. TIL (0) | 2022.12.12 |
1일차. 프로젝트 과정 OT (+TIL 공부법) (0) | 2022.12.12 |