본문 바로가기
풀데브코스

협업 환경 구성_Git의 기본 이해

by woody-j 2024. 2. 28.

1. 명령을 하는 방법 : CLI vs GUI

1) CLI(Command Line Interface)

CLI은 텍스트 기반 인터페이스이며, 셸(이라는 프로그램;창)에서 키보드를 통해 명령어를 입력하여 컴퓨터와 상호작용
명령 줄 인터페이스라고도 합니다.

 

주로 프로그래밍, 서버 관리, 시스템 관리 등과 같은 고급 작업에 사용됩니다. 
CLI는 명령어와 구문이 복잡할 수 있으며, 학습 곡선이 높을 수 있지만, 배치 작업을 자동화하고 복잡한 작업을 빠르게 처리할 수 있습니다. 또한, CLI는 GUI보다 시스템 자원을 적게 사용하므로, 시스템이 느려질 가능성이 적습니다.

 

학습 곡선 : 새로운 기술, 도구, 프로세스, 또는 시스템을 배우고 숙달하는 데 필요한 시간과 노력

배치 작업 : 사전에 정의된 작업이나 명령어의 일련을 자동으로 실행하는 프로세스

대표적인 CLI : window의 cmd, 맥과 리눅스의 terminal

② 키보드와 명령어로 사용 가능하다.

③ 입출력만으로 컴퓨터를 조작한다.

2) GUI (Graphical User Interface)

GUI는 그래픽 기반 인터페이스이며, 마우스를 통해 메뉴, 버튼, 아이콘 등의 그래픽 요소를 클릭하여 컴퓨터와 상호작용

 

일반적인 사용자들에게 보다 직관적이고 친숙합니다. GUI는 그래픽 요소를 사용하여 사용자가 쉽게 컴퓨터와 상호작용할 수 있도록 지원합니다. GUI는 보통 시각적인 요소가 많기 때문에, CLI보다 더 많은 시스템 자원을 사용할 수 있습니다.

 

고급 작업을 수행하거나 자동화가 필요한 경우 CLI를 사용하고, 보다 직관적이고 시각적인 요소가 필요한 경우 GUI를 사용

 

3) 차이점

Q. CLI를 왜 쓰나요?

(1) 더 적은 에너지를 사용 : text만 사용하기 때문

(2) 순차적인 작업 자동화 가능 : CLI는 스크립트를 사용하여 반복적인 작업을 자동화하는 데 유리

(3) 호환성과 접근성: CLI는 다양한 운영 체제에서 일관된 경험을 제공

 

2. 기본 명령어

더보기
  • 현재 위치 확인 : pwd (print working directory)
  • 폴더 생성 : mkdir [폴더명] (make directories)
  • 특정 폴더에 포함된 파일이나 폴더 확인 : ls (list)
    • ls -l (파일의 포맷을 전부 표현하라는 의미이다.)
      drwxr-xr-x // 앞의 d는 directory를 의미한다.
      -rw-r--r-- // 앞의 -는 file을 의미한다.
    • ls -a (all 이라는 의미로, 숨겨진 폴더나 파일까지 포함하여 출력한다.)
    • ls -al 또는 ls -al (순서가 기능에 영향을 미치지 않는다)
  • 폴더 열기 : open . (현재 위치 폴더) open [폴더명] (해당 폴더)
  • 폴더 진입 : cd [폴더명] 또는 cd [경로] (change directory)
  • 파일 생성 : touch [파일명. 확장자]
  • 파일 내용 터미널에 출력 : cat [파일명. 확장자]
  • 파일 삭제 : rm (remove)
  • 폴더 삭제 시rm -rf
    • 옵션 r (recursive) 폴더를 지울 때 사용
    • 옵션 f (force) 질문을 받지 않고 지울 때 사용
  • 폴더나 파일의 이름 변경 또는 위치 이동 : mv (move)
    • mv [파일명. 확장자 또는 폴더명] [폴더명] 폴더/파일을 해당 폴더로 옮긴다.
    • mv [파일명.확장자 또는 폴더명] [변경할 이름]
  • 폴더나 파일 복사 : cp (copy)

 

3.  Git_CLI

1) Git 추적 및 상태 확인

(1) git status: 현재 Git 추적 상태 확인, 파일 추적 시작하기 전의 준비 과정

맨 처음부터 git status치면 하단의 문구처럼 이 곳은 Git 저장소가 아니라는 에러가 발생한다.

git status

1. fatal 에러

2) Git 추적 및 상태 확인

(1) git init: 새로운 Git 저장소 생성

git init


Git : 이곳을 버전 관리할 거야!

1) git init 명령어를 실행하면, 현재 디렉토리 기준으로 git 저장소가 생성이된다.


Git 저장소를 생성할 때, Git은 기본적으로 초기 브랜치의 이름을 'master'로 설정합니다.
하지만, 이 기본 브랜치 이름은 사용자의 선호나 커뮤니티의 관행에 따라 변경될 수 있습니다.
최근에는 'main', 'trunk', 'development'와 같은 이름이 자주 사용됩니다.

 

2) Git은 시작부터 다 트래킹(추적)하고 있진 않다. 대신, .git 폴더를 생성하여 저장소의 설정과 히스토리 정보를 저장

 

Git : " 자 일단 마스터라고, 내가 니 저장소에 이름을 새롭게 만들었는데 "

Git : " GitTest 폴더 버전 관리 해줄게. 근데 .git 폴더(저장소의 설정과 히스토리 정보를 담고 있으며 기본적으로 숨겨진 폴더)를 니 GitTest 폴더에 넣어야하는데 괜찮니? "

 

지난 1. fatal 에러 보면 알 수 있다. 니 폴더엔 .git 파일이 없어!

 

3) 다시 git status를 치면?

 

Git : " 자 나 관리해주고 있어 일단 커밋은 아무것도 없어"

 

Git : " 보는데 어? 내가 모르는 파일이 있다?"

 

사전에 파일을 전부 봐달라고 한 적은 없음 그렇기 때문에 봐야할 파일은 따로따로 말해줘야한다.

 

3) 파일 추적 및 버전 관리 시작

(1) git add: 파일을 스테이징 영역에 추가

: Git아, 이 파일 이제부터 트래킹 해줭! 이거 다 모아줘
Git : 이 파일을 다음 커밋에 포함시킬 거야

git add test.txt로 test.txt를 트래킹한 상태


(2) git commit: 변경사항을 버전으로 저장

나 : 버전으로 저장할 것 모으고 있었지?

Git : 지금까지 모은걸로 버전 만들어 줄게!


4) 커밋 메시지 작성 및 저장 과정 (추후에  더 자세히)

① git commit

② cc c두번 눌려준다.

③ insert가 뜸

 맨위에 커밋 작성 후 esc

⑤ insert없어지고 :wq enter

5) 변경 사항 확인

(1) git log: 커밋 로그 확인

 

4.  Git_GUI

GUI를 사용해서 git add를 했더니 오류가 났다.

1) Git add 오류

원인

이 오류 메시지는 Git이 지정된 파일을 추적할 수 없다는 것을 나타냅니다. 파일의 위치가 저장소 외부로 인식되기 때문입니다. 이는 종종 경로 명명에서 인코딩이나 문자 표현의 차이로 인해 발생합니다. 특히 ASCII가 아닌 문자가 포함된 경우, 이 경우처럼 한글 문자가 포함된 경우에 자주 발생합니다.

 

해결

문자 표현의 차이로 인해 발생했다는 에러를 보고 폴더명을 한글에서 영어로 바꿔주니 해결

2) Git 확장 기능과 툴

1) Git History 확장 기능 설치

 

5. 원격 저장소와의 연동

git remote add: 원격 저장소 연결

① git remote -v : 처음에 작성하면 아무것도 안나옴

② git remote add 원격저장소(깃허브 레포지토리) 별칭 원격저장소URL.

③ 위의 코드 작성 후 git remote -v 하면 아래 처럼 나옴

 

 

https://louis-j.tistory.com/entry/CLI%EC%99%80-GUI%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80

'풀데브코스' 카테고리의 다른 글

Git고급  (1) 2024.03.04
협업 환경 구성_Git 브랜치 전략 기반의 협업 워크 플로우  (0) 2024.02.29
협업 환경 구성_버전관리  (0) 2024.02.27