원활한 협업을 위해 이제는 자세히 공부해야할 때이다.
🔷 pwd (Print Work Diretory)
$ pwd
/
: 루트 디렉토리~
: 홈 디렉토리절대 경로는
/
으로, 상대 경로는.
으로 시작한다.
🔷 ls (List Segments)
$ ls
옵션
-l
: 리스트 형태로 자세히-a
: 숨김 파일까지 나열-al
🔷 cd (Change Directory)
$ cd 폴더이름 또는 이동 경로
$ cd ..
(상위 폴더로 이동)🔷 mkdir (Make Directory)
$ mkdir 폴더이름
🔷 touch
$ touch 파일이름.확장자
🔷 vi (visual editor)
$ vi 작업할 파일
💡 vi 명령어
▪i
: 현재 커서 위치에 삽입 - 입력모드
▪a
: 현재 커서 다음위치에 삽입- 입력모드
▪esc + : + wq
: 파일 저장 후 종료
▪: + q
: 종료
🔷 cat (Concatenate)
$ cat [파일이름.확장자]
🔷 open
$ open .
$ open 파일
🔷 DVCS 분산 버전 관리 시스템
💡 Git의 아버지는 Linus Torvalds, 2005 (https://github.com/torvalds)
🔷 GitHub / GitLab
🔷 분산 버전 관리 시스템 (DVCS)
🔷 git init
$ git init
❗ 무계획으로 사용을 지양한다.
💡 git에서 관리하지 않을 파일을 지정하기 위해
.gitignore
파일을 이용해야하는데, 어려우면 gitignore.io 를 이용하여 만들어보자.
🔷 git config
$ git config <옵션> user.email “<email>"
옵션
--system
: 시스템 설정 파일--global
: 전역 설정 파일--local
: 내 저장소 설정 파일🔷 git status
$ git status
💡 untracked
💡 Staged
🔷 git add
$ git add
옵션
.
: 전체 파일 add파일이름.확장자
: 1 개 파일 add❗ 파일 이름에 공백문자가 있다면 따옴표로 파일 이름을 감싼다.
🔷 git commit
$ git commit
옵션
-m "커밋 메시지"
: 전체 파일 commit-a
: 변경된 파일을 Staging Area에 올리면서 commit, 새 파일 안됨--amend
: 직전 commit 메시지 수정-a -m
🔷 git log
$ git log
q
를 누르면 터미널 탈출 가능옵션
--oneline
: commit 메시지와 간략한 해시값을 보여줌, 전체 해시값 7자리만 출력--graph
: 그래프의 모습을 보여줌🔷 git remote
$ git remote add origin [github url]
: 장소 추가$ git remote –v
: 지정한 원격 저장소(origin) 확인$ git remote
: 지정한 원격 저장소(origin) 삭제❗ config 처럼 덮어 쓸 수 없다.
🔷 git push
$ git push origin [branch]
🔷 git pull
$ git pull origin [branch]
🔷 git clone
$ git clone [repository url]
$ git init
없이 진행, 상위 폴더들이 Git으로 관리되고 있으면 안됨!🔷 git flow
💡 master(main), develop, feature, release, hotfix
🔷 git branch
💡 branch는 독립 공간을 형성하기 때문에 원본(master)에 대해 안전하며 하나의 작업은 하나의 branch로 나누어 진행되어 체계적인 개발이 가능하다는 장점이 있다.
🔷 git branch
브랜치 목록 확인
$ git branch
: 로컬 저장소$ git branch -r
: 원격 저장소 (origin)새로운 브랜치 생성
$ git branch [브랜치 이름]
: HEAD가 바라보고 있는 시점을 기준으로 브랜치 생성특정 커밋 기준으로 브랜치 생성
$ git branch [브랜치 이름] [커밋 ID]
브랜치 삭제
$ git branch –d [브랜치 이름]
: 병합된 브랜치만 삭제$ git branch –D [브랜치 이름]
: 강제 삭제 (주의)🔷 git switch, git checkout
브랜치 이동
$ git switch [브랜치 이름]
$ git checkout [브랜치 이름]
switch 옵션
-c
🔷 git branch 주의사항
1) 브랜치 작업을 시작하기 전에 반드시 1회 이상의 commit 이 필요
2) 브랜치 이동하기 전에 현재 브랜치 작업물을 모두 commit 한 이후에 이동
🤔 ex)
master와 develop 브랜치가 있다.
develop 브랜치에서 test2.txt를 만들고 커밋하지 않은 상태로 master 브랜치로 이동하게 되면, test2.txt 파일이 master 브랜치로 함께 넘어온다. 독립적인 작업이 불가능하기 때문에 권장되지 않는다.
🔷 git merge
$ git merge [합칠 브랜치 이름]
🤔 ex)
1. 현재 test1 와 test2 브랜치가 있고, HEAD가 가르키는 곳은 test1
2. test2를 test1에 합칠려면?
git merge test2
3. test1를 test2에 합칠려면?
git switch test2
->git merge test1
💡 branch는 merge하고 되도록 삭제를 권장한다.
🔷 HEAD
🔷 fork
🔷 PR – Pull Request
🔷 git reset
$ git reset [옵션] [커밋 ID]
옵션
--soft
--mixed
--hard
🔷 git revert
$ git revert [커밋 ID]
💡 reset과 revert의 차이
reset: 특정 커밋 상태로 되돌아가는 기능, 되돌아갔을 때 해당 커밋 이후에 쌓았던 커밋은 사라짐
revert: 특정 커밋을 취소하는 새로운 커밋을 생성한다, 취소하는 이전 커밋은 그대로 살아 있음
협업을 위한 기초적인 것들이니 다시 한번 확인하자.