
원활한 협업을 위해 이제는 자세히 공부해야할 때이다.
🔷 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 logq를 누르면 터미널 탈출 가능옵션
--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: 특정 커밋을 취소하는 새로운 커밋을 생성한다, 취소하는 이전 커밋은 그대로 살아 있음
협업을 위한 기초적인 것들이니 다시 한번 확인하자.