CLI : Command Line Interface ; 개발자들의 컴퓨터 활용 방식.
GUI : Graphic User Interface ; 그래픽적 요소를 토대로 컴퓨터를 활용하는 방식.
CLI 명령어 (macOS)
pwd : 현재 directory 확인
ls : 현재 directory 안에 있는 모든 파일/폴더 listing
cd : change directory
만약 현재 들어온 폴더에서 밖으로 나가고 싶다면? cd ..
이라고 입력.
( .는 현재 내위치, ..는 현재 경로의 바로 위 경로를 뜻한다.)
mkdir - : -이라는 폴더 생성
cp : copy paste
mv : move
rm : remove (파일)
rm -rf : remove folder (폴더)
rm -rf .git : git (으로 관리되고 있는) 폴더 삭제
상대 경로 & 절대 경로
경로를 이동할 때는 절대 경로
, 상대 경로
라는 것이 있다.
우선 상대경로
는, 현재 내가 위치한 곳에서의 본 특정한 폴더/파일의 경로. (내가 users/(유저명) 이라는 경로에 있다면 desktop 폴더의 경로는 그냥 desktop)
ls 를 했을 때 보이는 폴더로 들어갈 때는 그냥 cd + 해당 폴더의 이름을 입력해서 들어가는데, 이때 사용하는 것이 바로 상대경로.
cd desktop
그런데 절대경로
는 내가 위치한 곳과 상관없이, 특정한 폴더/파일이 위치한 경로의 전체 주소. 만약 바탕화면 경로를 절대 경로로 표시한다면 /users/(유저명)/desktop
.
cd /users/(유저명)/desktop
절대경로는 앞에 /
를 붙인다는 특징이 있음.
git
이란 특정 폴더, 파일들의 버전 관리
를 위한 프로그램.
git 기본 명령어
git init
: git 저장소(repository)를 만드는 명령어. 이 명령어가 실행되어야만, 해당 폴더 내부의 폴더나 파일들을 관리할 수 있다.
git add
: 어떤 파일을 git으로 관리할지 지정
→ git add 명령어는 commit 을 하기 전에 (즉, 수정사항이 있을 때마다) 항상 다시 입력해줘야 한다.
git add .
: 여기서 .
이란 현재 폴더의 내부 파일, 폴더 전체.
git add -A
: .
은 현재 명령어가 실행되는 폴더 내부의 파일을 뜻하는 반면에,
-A
를 하게 되면 현재 경로가 어디든 현재 git 으로 관리되는 모든 파일에 대한 수정사항을 반영
git reset (파일명)
: git add 한 파일을 취소
git commit -m"(커밋메세지)"
: 현재 관리 중인 파일을 하나의 버전으로서 저장
→ commit 을 통해서 저장된 버전 간에는 우리가 원할 때 자유롭게 이동이 가능
→ “커밋은 기능단위”로 하는 것이 원칙!
커밋메세지 예시:
커밋타입: 동작 기능이름/함수이름
내가 지금 진행한 수정사항이 정확히 `어떤 타입`의 작업인지를 앞에 명시하고, 그 뒤로는 해당 작업에 대한 `세부사항`을 명시. (예를 들자면, `add feature1`, `create file1` 와 같은 방식으로 명시.)
git status
: git add 를 통해서 파일이 관리되고 있는지 확인
git으로 버전 되돌리기
git log
: 버전 확인하기
git revert
: 현재까지의 commit 기록은 유지하면서, 특정한 commit 이전으로 되돌리는 명령어. 되돌아가고 싶은 commit 이름을 적는게 아니라, 내가 없애고 싶은 commit 이름을 적는다!
→이후 표시되는 커밋 메세지 입력 창은 바로 vim
이라는 텍스트 편집기를 기반으로 한다.
[vim 관련 필수 명령어]
- (esc 후) i
→ (커서가 있는 부분부터) 파일 내부의 내용을 작성, 수정할 수 있습니다.
- (esc 후) dd
→ (커서가 있는 부분의) 행을 삭제합니다.
- (esc 후) :wq
→ 파일을 저장하면서 에디터를 종료합니다.
- (esc 후) :q
→ 파일을 저장하지 않고 에디터를 종료합니다.
git reset
: 특정 커밋으로 돌아가면서, 그 커밋 이후의 커밋 기록을 삭제하는 명령어. 마치 그 이후의 커밋이 없었던 것처럼 만들어주는 것! **git reset 은 revert 와 반대로, 없애고 싶은 commit 이 아니라, 되돌아가고 싶은 commit**을 명시해야한다는 점 주의!
git reset --soft (커밋번호)
reset —soft 의 경우, 수정 사항 (이후의 커밋 내용) 에 대해서 그대로 두고, 기록만 삭제. 파일에 그대로 수정 사항은 남아있음.
git reset --hard (커밋번호)
git reset —hard 는 reset 에 명시한 그 커밋 이후의 모든 수정사항들을 완전히 삭제하는 기능. 그래서 —soft 로 했을 때와는 다르게, 바로 해당 커밋의 내용으로 파일이 되돌아가는 것
이외에도 아래와 같은 명령어들이 있다.
git reset HEAD^
: 가장 최근의 커밋이 취소
git reset HEAD~2
: 현재부터 뒤에 명시한 숫자(2)만큼의 커밋이 취소
git reset —-mixed
: —soft 와 비슷한데, 이후 수정사항들을 commit 이전으로 되돌리는 것이 아니라, add 이전으로 되돌림
Git
이 단순히 버전을 기록하고 관리하는 도구라면,
Github
는 이 기록들을 온라인 상에 업로드하고, 보관할 수 있게 해주는 서비스.
Github 는 Git 으로 기록된 버전들을 올려놓기 위한 구글드라이브 같은 서비스.
우리 컴퓨터에 있는 Git 저장소를 Local Repository
라고 말하고,
Github 상의 (온라인 상의) Git 저장소를 Remote Repository
라고 한다.
연결 방법은 Local Repository 가 있는 곳에서 (git init 을 한 그 폴더에서) 아래 명령어를 입력.
git remote add origin (github repo 주소)
→ remote repository를 추가하는데, origin 이라는 이름의 저장소로서 우리가 뒤에 명시한 github repo 를 지정하겠다는 뜻.
위 설정이 완료되었다면, 앞으로 우리가 가진 commit 기록들을 올리기 위해서는 아래 코드만 실행하면 된다.
git push origin (브랜치명)
브랜치란 저장소 내부에 하나의 폴더를 만드는 것이라고 이해하면 된다. 다양한 브랜치를 만들 수 있고, 보통 각각의 브랜치 마다 용도를 정해놓고 개발을 진행하게 된다.
git 은 기본적으로 master 라는 브랜치에 파일을 기록하도록 설정이 되어있다. 그래서 우선은 git push origin master
라고 해서, 아까 설정한 origin 이라는 저장소 (git remote add origin 으로 지정했던 그 github repo) 의 master 라는 곳에 파일을 업로드.
push가 완료된 후 깃허브 웹사이트로 가보면 파일이 생겨있다!
git pull
명령어를 사용하면 된다!
git pull origin (브랜치명)
master branch 에 파일들이 있다면 git pull origin master
라고 입력해서 깃허브에서 작성한 파일 (및 수정사항) 을 내 컴퓨터로 받아오기 가능. 다른 사람과 협업을 하는 경우, 다른 사람이 깃허브에 올린 수정사항을 받아서 개발을 진행해야 할때, git pull 을 유용하게 사용 가능!