: CLI 는 Command Line Interface의 약자다. 커맨드라인(코드)로 하는 인터렉션이다. 쉬운 예로 GUI 는 그래픽 유저 인터페이스, 눈에 보이는것으로 인터렉션을 한다는것을 생각해보면 코드 한줄로 상호작용한다고 보면 될 거 같다.
직관적인것을 좋아하는 대부분의 현대인들에게는 알 필요가 없다고 생각된다. 그러나 개발자들에게는 Linux/Unix의 시스템을 알기위해서는 필요하다.
그 이유는 아래 적힌 3가지다.
- ls - List라는 의미이며, 내가 있는 디렉토리의 파일 및 폴더를 보여준다.
- cd - Change Directory이며, 간단하게 현재 위치(폴더)에서 다른 위치로(폴더)로 이동한다라고 생각하면 좋을것 같다.
- mkdir - make directoru, 새로운 폴더를 만드는것.
- rm - remove, 파일을 제거하는것.(한번의 실수로 모든 파일이 날아갈 수 있으니 조심 Ex>sudo rm -rf)
- pwd - 현재 위치를 보여준다.
- touch - 새로운 파일을 만든다.
- cat - 파일을 본다.
- mv - 파일이나 폴더를 위치를 이동시킨다. 이름을 변경 할 때도 사용된다.
- cp - copy, 파일이나 폴더를 복제 시킬 수 있다.
- ~ - 홈 디렉토리를 의미
- . - 현재 디렉토리의미
- .. - 상위 디렉토리를 의미
- / - 루트(최상위 디렉토르)를 의미
- sudo - 수도(super user do): 관리자를 의미.
- \ - 폴더나 파일의 띄어쓰기를 나타낼 땔 때 사용
- code. - 비주얼 스튜디오 코드 열기.
- open. - 디렉토리를 finder 에서 열기
- vim - 파일을 수정 할 수 있다.
- rf 는 리커시브 recursive forced 라고 한다.
위에 배우는데 시간은 30분밖에 안걸렸는데, 이렇게 적으니 배운게 생각보다 많다 ^^
: 저장소라고 이해해도 괜찮을것 같다. 우리가 짠 여러가지 많은 코드를 깃에 올릴 수 있을뿐만 아니라 버전관리도 쉽게 할 수 있고, 백업,협업하는데 아주 유용하다고 한다. 또 무료인 오픈소스라서 무료라는 장점도 있다.
(깃을 이해하는데 아직도 힘들다ㅎ 아는것같아도 잘 모르겠다 !)
위의 그림 처럼, 먼저 add를 하여 stage area로 보낸 후, commit을 통해 나의 깃 레파지토리로 보낼 수 있다.
어느정도 흐름은 알겠다. 그러나 내가 직접 말로 잘 설명을 하기 애매하다. 깃을 이해하는데 좀 오래 걸릴 수 도 있을것 같다.
그래도 내가 이해한것을 예를 들어 말해보자면,
나는 공연을 하는 사람이다. 그래서 workding directory에서 연습을 많이하면, 무대(staging area)로 가서 공연을 준비한 후에 무대 위에서 다른 사람들이 볼 수 있게 공연을 한다
내가 이해한것이 틀릴 수 도 있다 :)
나의 코드를 올리는 공간이며, 이 공간에서 새로운 수정한것을 올려서 디벨롭시킬 수 있다. 또 다른 사람들과 협업을 통해 누가 어떤 부분을 수정했는지도 알 수 있다. 레파짓토리에 올리는 단계를 커밋하고 푸쉬를 한다고 하는데, 이 때 메세지를 잘 적으면 어떤 부분을 수정했는지 쉽게 알 수 있다.
위의 그림은 커밋이 모이고 모여 마스터 브랜치까지 가는것을 보여주는 그림이다.
이 아래의 그림은 Branch들에 대해 설명하기 위해 가지고 왔다.
Feature :
보라색 선을 가르키는 Feature branch는 여러가지의 기능들 이라고 보면 된다. 예를 들어 한 홈페이지에는 여러가지 기능과 페이지들로 이루어져 있다. 이를 만들기위해서 개발자들은 한번에 다 만들지 않는다. 기능마다 페이지마다 따로 작업하여 올린다. 이때 그 하나 하나의 작업이 Feature branch이다.
Develope :
위에 설명했던 Feature branch가 잘 작동하는지, 아무런 오류가 나오지 않았는지를 확인하는 단계이다. 만약 잘 작동한다면 Master branch로 이동을 하게된다.
Master :
완성된 홈페이지다. 밑에서 만들었던 작은 기능과 홈페이지를 오류를 찾고 테스트 후에 완성된 완제품.
즉, end user가 쓸 소스코드가 들어가 있다.
Fork :
깃에 사람들이 올려놓은 오픈소스를 내가 사용할 수 있게 복제하여 가지고 오는것이라고 생각하면된다.
Clone :
Fork를 하면 복제는 가능하지만, 우리가 remote repository상에서 수정을 할 수 없다. 그렇기 때문에 clone을 하면, local repository에 가지고 올 수 있다.
위의 그림은 Git flow이다. 어떻게 깃이 작동되어지는지를 알 수 있다. 위의 그림에서 git fetch와 git merge를 합친것을 git pull이라고 한다.