Dev/Git

[Git] Git, Github 에 대해 알아보자

syuare 2025. 4. 7. 20:53

 

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 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