본문 바로가기
🦁 멋쟁이사자처럼/TIL

[220901] git과 GitHub의 차이 / git 명령어 등등

by minzyee 2022. 9. 3.

✏️ 오늘 배운 내용

  • git은 무엇이고, GitHub는 무엇인가요?
  • 리눅스 명령어
  • git 명령어
  • GUI와 CLI
  • 프레임워크와 라이브러리의 차이
  • 서비스를 만들 때

 


 

 

📖 git은 무엇이고, GitHub는 무엇인가요?

- git과 GitHub는 서로 다른 것이다. 잘 분간하자.(잘 분간 못했었음)

- git : 소스코드나 파일의 변경 내역을 저장하는 분산 버전 관리 시스템

- GitHub : 분산 버전 관리 툴인 깃 저장소 호스팅을 지원하는 웹 서비스로,
다른 사람과 코드를 쉽게 공유하고 협업하기 위한 공간이다.(깃 관리하는 곳)

 

 

 

 

📖 리눅스 명령어

git 명령어를 배우기 앞서, 간단하고 자주 사용하는 리눅스 명령 몇 가지를 알아보겠다.

 

명령어 명령어 의미
mkdir 디렉토리명 디렉토리를 만든다.
cd ../ 상위 디렉토리로 이동한다.
cd 이동할 디렉토리 원하는 디렉토리로 이동한다.
touch 파일명.확장자 파일을 만든다.
vi 유닉스 환경에서 가장 많이 쓰이는 문서 편집기
i 편집 상태로 들어가는 단축키
esc 편집 상태를 마친다.
wq 현재 편집기에서 빠져나온다.
wq! 오류가 있어도 강제로 빠져나온다.
pws print working directory의 약자
현재 작업 중인 디렉터리의 이름을 출력
ls 디렉토리의 내용물을 보여준다
ls -l l은 'long'을 의미하며, 한줄 한줄 길게 리스팅한다.
ls -a a는 'all'을 의미하며, 숨겨진 파일까지 모두 보여준다.
파일 이름이 .(점)으로 시작하는 파일은 보통의 ls 명령에서는 보여지지 않는 숨겨진 파일이다.
숨겨진 파일은 특정 프로그램의 설정파일인 경우가 많다.
rm 삭제할 파일명 파일을 삭제할 때 사용한다.
rmdir 삭제할 디렉토리명 해당디렉토리 삭제할 땐, cd ../ 로 나와서 상위 디렉토리에서 명령어 입력한다.

 

 

 

 

📖 git 명령어

git 명령어 명령어 의미
git clone repo주소 . • 깃허브에 만든 repository로부터 모든 파일을 가져오는 것을 의미한다.
• 입력한 repo 주소와 내가 작업할 디렉토리가 동기화 된다.
• 내가 작업할 디렉토리에 .git 디렉토리가 생성이 된다.
git add 수정된 파일이나 새로 만든 파일을 스테이징 환경에 보낸다(임시저장)
git commit-m "커밋 메세지" 변경 내역에 대한 이력 작성
git push 깃허브로 파일들을 보낸다
   
git -v 깃 버전 확인
git status git에 의해 관리되는 파일들의 상태를 추적하고 확인한다.
git diff 파일 수정 이력 확인

 

아래는 내 컴퓨터에서 작업하는 디렉토리를 깃허브 repo와 동기화 시키는 과정이다.

1. 내 컴퓨터의 새 디렉토리에서 터미널을 실행시킨다.

2. 깃허브에 repo를 만든다.

3. 만든 repo의 주소를 복사한다.

4. 터미널에 git clone repo주소 .   을 입력하고 실행시킨다.

이렇게 하면 이제부터 제 디렉토리는 깃허브 겁니다. 깃허브가 관리합니다.

* .gitignore 파일 안에 적인 파일명은 깃이 무시한다.

 

 

📖 GUI와 CLI

 

  • GUI(Graphic User Interface)

- 사용자가 편리하게 사용할 수 있도록 입출력 등의 기능을 알기 쉬운 아이콘 따위의 그래픽으로 나타낸 것

- 마우스로 편하게 클릭할 수 있는 환경

 

  • CLI(Command Line Interface)

- 가상 터미널 또는 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식을 뜻한다.

- 터미널에 리눅스 명령어를 입력해 프로그램을 실행하는 환경

- 회사서버의 90%이상은 리눅스 환경입니다.

 

 

 

 

📖 프레임워크와 라이브러리의 차이점(제어 흐름의 권한)

  • 프레임워크
    • 원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대를 의미한다.
    • 장점
      - 코드가 더 안전성
      - 버그를 적게 생성함
      - 중복 코드 개선작업을 빠르게 끝낼 수 있음
      - 오픈소스 프레임워크에 기여할 수 있음

    • 예시
      - 웹 개발에 사용되는 Angular, Vue.js 등
      - Java 서버 개발에 사용되는 Spring
      - Python 서버 개발에 사용되는 Django, Flask
      - 안드로이드 앱 개발에 사용되는 Android
      - 아이폰 앱 개발에 사용되는 Cocoa Touch

    • 제어권한
      - 프레임워크는 애플리케이션의 코드가 프레임워크에 의해 사용됩니다.

 

  • 라이브러리
    • 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임.
      특정 기능을 모와둔 코드, 함수들의 집합이며 코드 작성 시 활용 가능한 도구들을 의미합니다.

    • 예시
      - React: 웹에서 사용자 인터페이스를 만들기위한 JavaScript 라이브러리
      - JQuery: HTML의 클라이언트 사이드 조작을 단순화
      - Node.js에서 npm으로 설치한 모듈

    • 제어권한
      - 라이브러리를 사용할 때 사용자는 애플리케이션 코드의 흐름을 직접 제어해야 합니다.

 

 

📖 서비스를 만들 때

0. 기획자가 기획


1. URL 구조 작성
/about
/index.html
/a/index.html
/b/index.html
/c/index.html


2. model 설계
- 게시판
- 게시물 제목
- 게시물 내용
- 사진
...

3. 디자이너가 디자인
4. templates 작성(HTML 파일)
5. model 설계한 것과 templates 연동

 

 

 

 

❓헷갈렸던 점

 

✏️ git clone과 git pull의 차이점

  • git clone
    • git clone은 GitHub로부터 .git 폴더까지 전부 다 받아온다. 말 그대로 복제
    • 리모트 설정을 자동으로 해주는 초기 다운로드에 사용한다.
    • 처음에 팀원들과 깃허브(원격저장소)에서 레포지토리를 받아올때만 사용한다.

 

  • git pull
    • 리모트 설정이 이미 되어있을 때 업데이트 사항 등을 다운로드 할 때 사용한다고 합니다
    • 누군가의 수정 내역을 받아올 때 사용한다.
    • 내가 이미 .git 폴더를 가지고 있고, 작업하고 있는 파일도 있는 상태에서 사용한다.

 

 

✏️ 충돌이 일어나는 이유

  • 같은 파일의 같은 라인을 수정 했을 때, 충돌이 일어난다.
  • 같은 파일 이어도 다른 라인이면 충돌이 일어나지 않기때문에, 이 부분은 merge(병합) 하면 된다.
  • 충돌은 내가 해결해야한다. 깃헙에서 해결해주지 않는다.
  • .git 폴더는 하위폴더 내에서도 하나만 있어야 한다.

 

 

✏️ 깃허브에서 협업하려면?

  • 깃헙의 콜레버레이터스에서 구성원 추가하면 됨

 

 

✏️ 개발을 하면서 마음가짐

  • 나한테 너무 심한 자극을 주는 회사는 나가라.
  • 코드 리뷰는 상처 받지 말아라
  • 코드와 나는 인격적으로 분리해라

 

 

 

 

📚 Reference

 

 

 


 

 

🫥 하루 회고

git과 GitHub는 뭐랄까,,,

개인적으로 공부했었을 때 굉장히 애를 많이 먹었었다.
배우고 배워도 너무 어렵고 헷갈리고 까만창은 그냥 무섭고-!

그래도 한 58,000번 정도 보니까 쪼끔은 익숙해진 것같기도 하고 아닌 것 같기도 하고,,,

이건 기본 역량이라는 말을 듣는 순간 뜨끔했다^^;;

이래서 다른 공부 언제하니. 잘하자 민지야

 

 

반응형