[개발기초] Linux, node.js, Git - 1주차

Hong·2022년 9월 18일
0
post-thumbnail

🙃 난 CLI(Command-Line Interface)와 GUI(Graphical User Interface)를 처음 들어봤다. 게다가 맥북도 처음써서 파일 삭제하면 어디로 가는지, 내가 어느 폴더 경로에 있는지 파악하는것 부터가 익숙하지 않아 수업을 따라가는데 꽤나 애 먹었다. 그래도 꾸역꾸역 따라갔다. 다른 분들은 이미 다 알고있는 내용같아 괜히 조바심이 났다.

GUI의 장점은 말할 것도 없고, CLI의 장점은 컴퓨터 프로세스를 적게 잡아먹고 많은 일을 한 번에 처리할 수 있다는 장점이 있다. GUI는 마우스로 일일이 해결해야할 문제들을 CLI에서는 단 몇가지의 커맨드 가지고 진행할 수 있다. 결론은 CLI가 익히기는 어렵지만 익히면 GUI보다 더 빠르고 많은 일을 처리할 수 있다는 말.

⌨️기본적인 Linux커맨드
pwd : 내가 있는 폴더의 현재위치 확인

mkdir : 내가 있는 폴더 위치에서 새로운 폴더 생성하기

ls : 내가 잇는 폴더 위치의 파일과 폴더 묵록 확인하기
ls -l : 파일의 포맷 확인해라 (drwxr-xr-x / -rw-r--r--)
ls -a : 숨김파일까지 확인해라
ls -al : ls -l, ls -a 동시실행해라

cd : cd helloworld하면 helloworld폴더로 진입함

touch : touch helloworld.txx하면 helloworld텍스트 파일 생성함

cat : cat helloworld.txt하면 helloworld 텍스트 파일 console.log함

rm : ls랑 자주쓰이는데 ls로 확인하고 rm helloworld.txt하면 지워짐

mv : mv helloworld.txt byeworld/ 하면 byewworld텍스트 파일을 helloworld폴더로 옮김
근데 mv helloworld.txt byeworld.txt 하면 helloworld텍스트 파일이 byeworld텍스트 파일로 이름이 바뀜

cp : cp helloworld.txt byeworld.txt 하면 helloworld텍스트 파일이 byeworld텍스트 파일로 바뀜

. : cd ./helloworld 하면 현재폴더 아래의 helloworld폴더로 들어감 (Users/NotoriousHong/helloworld/hello/hi)
.. : 이전, cd ..

😲 node.js는 Jacascript를 웹이 아니라 컴퓨터 내에서 작동할 수 있도록 만드는 장치이다(이렇게 되면 오프 라인에서도 작업할 수 있고 Javascript를 이용해서 앱이나 웹을 개발하기 쉬워짐). 하지만 여러개의 node.js버전이 있어 이것을 손쉽게 관리해주기 위한 도구로 nvm(Node Version Manager)를 사용한다, npm(Node Public Management)은 다른 사람들이 만들어놓은 유용한 코드들을 끌어다 쓸 수 있는 앱스토어 같은거임.

🤯 Git.. 난 금요일 이거하면서 머리 터지는줄 알았다. 도대체 왜 파일을 올리고 공유하는 웹사이트를 이렇게 복잡하게 만들어놨는지 이해가 안되었다. 사용법도 어렵고. 일단 두가지 빡침 포인트 중에서 여전히 사용법이 어려운건 화가 안풀림. 그래도 Git이라는 것이 구글 드라이브처럼 단순히 사진파일 하나 공유하는 것을 위한 목적이 아니라 수정이 많이 필요한 코드파일을 공유해야하니 여러 단계를 거쳐서 파일을 업로드해야하는 것을 이해했다.


아직 git GUI버전을 써보지는 않았는데 이유를 알겠어도 이렇게 만들어 놓은거는 좋게 봐줄 수가없다.

git init : myfile.js을 git관리 하에 집어넣는다.
git status : git관리하의 파일이 변경된 사항이 있는지 없는지 git workflow상에서 어떤 단계에 있는지 알려줌
git add myfile.js : git관리하의 파일을 staging area로 보냄(이거는 내가 변경한 수정사항을 팀원이나 내 github사이트에 올리기 위한 준비 단계로 보내는 것임)
git restore myfile.js : 근데 modified된 코드들이 마음에 안들면 restore를 통해 수정사항들 다 되돌릴 수 있음

암튼 수정사항 맘에들면 이제 내 local repository에 올려야함.
안올리면 내 github에도 보낼 수 없음.

git commit -m 'changes' : local repository로 이동시킴. 수정사항에 대한 간단한 메모 작성가능, 다른 사람도 확인할 수 있음.
여기서 올렸는데 맘에 안들면
git reset HEAD^ : 이 명령어로 다시 staging area로 돌릴 수 있음.

이제 내 github에 올릴건데
git remote add origin(or pair) https://git..(내 깃헙 주소 or pair) : 이 명령어를 통해 내가 올릴 파일과 내 remote repository를 연결시킴
git remote -v : 잘 연결되었는지 확인
git push origin main : main이라는 이름의 branch로 내가 수정한 파일을 remote repository로 옮김

이제 다른 팀원이 내 remote repository에서 fork한 다음 이것저것 수정하면 내가 다시 그 파일을 들고올 차례임

git pull pair main : 사전에 등록해논 내 팀원의 git hub주소를 통해 상대방이 수정한 파일을 pull해온다. (들고온 파일은 자동으로 merge됨)
git status : 혹시 같은 코드를 수정하지는 않았는지 충돌상황을 확인하고 네것과 내것 중 어느 것을 선택할지 결정함.

만약 myfile.js만 수정해서 다시 올릴거라면 별 다른 조치(add, commit등)없이 내 remote repository에 올리면 됨
git push origin main : 올린다.

근데 만약 내가 myfile.js에 footer.html을 추가했다면?

git add footer.html
git commit -m 'footer.html 추가합니다'
git push origin master

해야함

*내가 만약 어떤 오픈소스 프로젝트를 contribute하고 싶다면
github에서 원하는 프로젝트를 fork한 다음
git clone https://git..(fork한 내 깃헙주소) : 명령어 실행하면 끌고와서 내 데스크탑에서 코드 작성할 수 있음

😭난 아직 코딩을 배운게 아니라 코딩한 파일을 공유하고 다운받는 법을 알게되었을 뿐인데 어지럽다.

profile
Notorious

0개의 댓글