
- Git 설치 필요: https://git-scm.com/downloads/win
Git - Downloading Package
Download for Windows Click here to download the latest (2.49.0) 64-bit version of Git for Windows. This is the most recent maintained build. It was released on 2025-03-17. Other Git for Windows downloads Standalone Installer 32-bit Git for Windows Setup. 6
git-scm.com
- mac - 기본적으로 리눅스 환경 제공
- window - Git bash 사용 추천
Git을 하려면 먼저 터미널과 리눅스 명령어를 알아야 한다.
왜? git을 터미널에서 사용할 것이니까
터미널(Terminal)이란?
컴퓨터 시스템를 제어하기 위해 상호작용을 하기 위한 텍스트 기반 인터페이스
- 터미널: UNIX 계열의 운영체제에서 명령어를 입력하기 위한 CLI
- CMD(명령 프롬프트): MS-Dos 기반 운영체제(=Windows)에서 명령어를 입력하기 위한 CLI
- 느낌적으로 쉽게 얘기하자면, 과거 Windows 이전 운영체제인 Ms-Dos 느낌이다.
- Ms-Dos에서는 명령어를 통해 컴퓨터와 소통을 할 수 있었다.
- 지금 생각해보면 그때 사용하던 명령어가 리눅스 명령어였던 같다.
*CLI: (Command Line Interface)
그래서 터미널을 왜 사용하는가?
- Windows와 같이 그래픽으로 이루어진 GUI 보다 텍스트 기반의 CLI를 통해 작업하는 것이
- 일부 작업을 완료하는 것이 훨씬 빠르고, 더 많은 명령과 스크립트에 접근할 수 있기 때문
참고로 다음에 말할 리눅스(Linux)는 UNIX 타입의 운영체제이고,
터미널은 UNIX 계열의 운영체제에서 명령어를 입력하기 위한 CLI이기 때문에
우리는 터미널을 이용하기 위해 리눅스 명령어를 알아야 한다!
필수 리눅스 명령어
pwd / print working directory
- 현재 내가 작업하는 폴더를 보여줘
- 디렉터리 = 폴더 = 경로
/ : 루트
~: 홈 경로 (최초, 초기화 상태의 경로)
ls / list
- 현재 폴더의 폴더&파일 보여줌
ls -a / list -all
- 숨김 폴더&파일까지 보여줘
- . ~~ 과 같이 '.'으로 시작하는 것들은 숨김 처리가 된 것임
ls -l
- 폴더 내 있는 파일의 상세 정보를 보여줌
cd / change directory + 폴더명
.. : 상위 폴더를 의미 // 상대 경로 문법
. : 현재 폴더를 의미
cd: . 없이 그냥 사용할 경우 홈 경로로 이동
cd /폴더명/폴더명: 해당 폴더로 바로 갈 수 있음
mkldir / make directory
폴더 생성
touch 파일명
- 파일 생성
* touch 파일.확장자 > 생성했던 파일을 다시 입력하면 파일 생성 정보 갱신 가능
Git&Github 개념
파일 변경 / 변경 기록 확인 > git으로 해결 가능
git이란?
- 코드 변경점 기록
- 버전 관리 도구 (형상 관리 도구)
- 세이브 포인트
github란?
- 코드의 백업/공유가 가능한 온라인 코드 저장소
- 코드를 github에 업로드 - 타인(팀원 등)과 협업이 수월함
Git 필수 명령어
git init
- 코드 관리를 시작하는 명령어
- initialize / 초기화하다, 초기 세팅하다
- 프로젝트 시작 전 딱 한 번만 입력 (여러 번 입력해도 문제되진 않지만 한 번만 하자)
- 정확한 프로젝트 폴도(경로)에서 입력 필요
- *주의: 잘못하면 데스크탑 전체 파일 등 기록됨
- 해당 명령어 입력 시 .git 폴더 생성
- git에서 이 폴더 내 코드 변경을 추적함
git status
- git 상태 확인 > 어떤 파일 변경, 지정 되었는지 등 상태 확인
- 저장되기 전 상황을 확인하는 명령어
- 빨간색 폰트: 변경된 내용이 있지만 저장이 되지 않았음
git add & commit
- 코드를 저장하는 명령어
- 스냅샷을 찍는 것 처럼 저장
git add 파일명.확장자: 사진 찍기 위해 스테이지 위로 올림, 저장 파일 지정
git commit -m "메세지 작성": 사진을 찍음, 찍을 때 사진 내용 작성, 실제 지정 파일 저장
- 어떤 작업을 했는지 코드 변경점을 자세히 적어 두는게 좋다.
- 누가 언제 무엇을 했는지 다 기록하기에 이메일, 유저 이름 필요해
git add . : 현재 폴더의 업데이트 파일 모두 지정
Q) 왜 저장 명령어가 2개일까?
A) 원하는 자료만 저장하도록 하기 위해, 여러 개 add 해두고 한 번에 커밋할 수 있어서
Q) error: please tell me who you are
A) 계정 설정을 먼저 해야함 (이메일, 유저 이름)
git log
- 저장 내역을 확인하는 명령어
- 누가 / 언제 / 무엇을(커밋 메시지) 했는지 한 묶음으로 보여줌
- q를 눌러서 나올 수 있음
git reset commit ID
- commit id로 돌아가기
- 잘못 사용할 경우 최근 작업 내용이 다 날아갈 수 있으니 사용 시 주의 필요
clear
- 터미널 창 초기화
github
- 백업 / 공유 / 협업
- github repository 만들기
git remote add origin <github 주소>
- <github 주소> 를 "origin"이라는 별칭으로 저장하겠다 (통상적으로)
- alias: 별칭
- remote: 온라인 저장소 - github를 의미
git remote -v
- 저장되어있는 목록
git branch -M main
- branch 이름을 바꾸겠다.
- 본래 기본 branch = master 라는 의미였으나 해당 의미는 노예 제도와 관련되어 있다는 의견이 있어
- master > main으로 사용
- git status로 상태를 볼 수 있다.
git push -u origin main
- push: 업로드 하겠다.
- origin이라는 메인 branch에다가 업로드를 하겠다.
- git push > 만 쳐도 메인 branch에 업로드 하겠다 > 라고 인식 됨
- -u: 다음 부터는 origin main을 생략할거다 라고 단축어 용어로 지정하는 것 (옵션)
- 혼자 작업할 때는 좋은데, 협업할 때는 별로다.
github 협업 / 충돌 해결하기
- branch를 이용하지 않으면 충돌이 많이 일어날 것임 -> 2주차때 branch 활용할 예정
팀장
- 초기 프로젝트 코드 작성
- github 레포지토리 생성
- 코드 github에 올리기
- settings - collaborators - manage acess 추가
- 함께 작업할 인원(팀원) 추가
팀원
- git clone: 코드 복제 > 다운로드 받으면 됨
- code - https url 복사 - 작업 폴더 생성 -
- git clone <git 복사 코드 url> .
- 해당 레포지터리의 코드들이 복제됨
- 맨뒤에 점(.) 잊어먹지 말기!
- *팀원들이 1번만 하면 됨!
- 코드 수정 및 업로드
- 코드 수정
- 코드 저장
- git push origin "branch명(main)"
git pull
- 다른 사람이 변경한 코드 내 코드에도 가져오기
- 누군가가 git push를 한 상태에서 내가 git push를 하려고 하면 에러 발생
- error: "git push 전에 git pull 먼저하세요"
- git pull 에러 시 힌트를 잘 확인할 것
- git config pull.rebase false #merge
- git config pull.rebase true #rebase
- rebase는 예쁘게 보여주기 위함
- 그러나 잘 모르고 쓰면 프로젝트가 망함
- rebase는 잘 모를때는 최대한 쓰지 말라
- git config pull.rebase true #rebase
- git pull origin main
터미널에 아무것도 입력 안되는 vim 에디터가 뜰 경우
- esc
- :wq / 저장 나가기 (write & quit)
- enter
충돌 해결하기
- branch가 하나밖에 없을 경우 높은 확률로 충돌이 나게 됨
- 같은 파일의 같은 위치에 코드가 변경되었기 때문
- 당황하지 말고 충돌된 부분을 어떻게 해결할지 confirmed 해줄 것
- 충돌 해결 후
- git add .
- git commit -m "메세지"
- git push origin main
'Dev > Git' 카테고리의 다른 글
[Git] Git&Github으로 협업을 해보자 (0) | 2025.04.14 |
---|---|
[Git] git rebase, git merge, git stash/pop (0) | 2025.04.10 |
[Git] git branch (0) | 2025.04.09 |
[Git] git push 에러 발생 / 해결 (git init) (0) | 2025.04.08 |