DEV&OPS/Linux & Cloud

git 기본 사용 방법

ALEPH.GEM 2025. 10. 31. 18:26

 

git 클라이언트 설치

https://git-scm.com/

 

Git

 

git-scm.com

여기서는 윈도우를 기준으로 설명합니다.

 

git  로컬 저장소 만들기

윈도우의 cmd를 사용해도 되지만 linux 스타일인 위에서 설치한 git bash를 실행시켜 작업하겠습니다.

d:\ 드라이브로 이동합니다.

cd /d

git이라는 디렉터리를 생성한 뒤 이동합니다.

mkdir git
cd git

여기에 다시 gitwork 디렉토리를 생성한 뒤 이동합니다.

mkdir gitwork
cd gitwork

깃 저장소를 생성해서 초기화 하는 명령어를 실행합니다.

git init

그러면. git이라는 디렉터리가 하위에 자동생성되며 이 디렉터리가 git에서 관리하는 저장소라는 역할을 하게 됩니다.

디렉터리 경로 앞에 점(.)을 붙이는 것은 리눅스에서 숨김 폴더(파일) 처리하는 것이므로 일반 ls 명령어로는 숨겨집니다.(하지만 윈도우 탐색기에선 그냥 보입니다.)

이제 사용자 등록을 해보겠습니다.

git config --global user.name "{사용자명}"
git config --global user.email "{이메일주소}"

이것으로 git 로컬 저장소가 준비되었습니다.

 

원격 저장소 (github) 만들기 

https://github.com/

 

GitHub · Change is constant. GitHub keeps you ahead.

Join the world's most widely adopted, AI-powered developer platform where millions of developers, businesses, and the largest open source community build software that advances humanity.

github.com

영문의 압박감이 있지만 잘 가입해서 로그인해주시길 바랍니다.

로그인하면 Create repository 버튼을 눌러 새로운 원격 저장소를 만듭니다.

비공개 저장소는 유료이므로 비공개로 하실 분은 유료로 사용하시면 됩니다. 

하지만 공개 저장소는 무료이므로 부담 없이 연습용으로 사용할 수 있습니다.

여기서 Owner는 소유자 Repository name에는 원격저장소 이름을 입력해 주시고 아래 옵션들을 결정합니다.

  • Choose visibility는 public으로 무료 공개 저장소로 만들기 위한 옵션입니다.
  • Add README 옵션은 readme 파일을 자동으로 생성할지 옵션입니다.
  • Add .gitignore 옵션은 git에서 관리하지 않는 예외 파일목록이 저장된 파일이 .gitignore 파일입니다. 이 파일은 저장소가 생성될 때 같이 생성하는 게 좋습니다. 그래서 No..gitignore 옵션을 사용하는 프로그래밍 언어로 변경해 주시길 바랍니다.
  • Add license 옵션에서는 라이선스 표시를 결정합니다.

그러고 나서 Create Repository 버튼을 눌러서 원격 저장소를 생성합니다.

 

 

원격 저장소에 push

위에서 git config  명령어로 등록했던 사용자 정보와 github에 가입했던 사용자 정보랑 일치하지 않으면 git config 명령으로 일치시켜 주세요.

이제 github에서 생성한 원격 저장소 경로를 git bash에서 추가해 줍니다.

git remote add origin https://github.com/계정명/원격저장소명.git

 

이제 d:/git/gitwork/ 경로에 README.MD 파일을 하나 생성해서 내용을 아무 내용이나 적어 놓습니다.

그리고 나서 로컬 저장소에 commit을 합니다.

git add -A
git commit -m "first commit"

그러고 나서 push 하기 전에 원격저장소와 연결을 시켜줍니다.

git push --set-upstream origin main

여기서 origin main은 원격저장소를 생성할 때 기본적으로 생성된 main 브랜치를 의미합니다.

다른 branch에 push 하려면 다른 branch에 하셔도 됩니다.

이때 push를 하게 되면 github 계정 인증 작업을 하게 됩니다.

적절한 인증 절차를 거치면 push가 완료되고 원격 저장소에 로컬 저장소 내용이 적용되게 됩니다.

 

원격 저장소에서 가져오기

새로운 로컬 디렉터리 d:\git\gitClone 디렉터리를 생성한 뒤(mkdir) git hub에 아까 생성했던 원격저장소 페이지에 갑니다.

초록색 Code 버튼을 눌러보면 Clone을 위한 HTTPS와 SSH 등 프로토콜이 있는데 여기서는 HTTPS를 이용하겠습니다.

"https://github.com/계정이름/저장소이름.git" 옆의 copy url to clipboad 버튼을 눌러 url을 복사합니다.

이제 git bash에 위에서 만들었던 d:\git\gitClone 디렉터리로 이동(cd)해서 clone을 실행합니다.

git clone https://github.com/계정이름/원격저장소이름.git

clone을 실행하면 하위에 원격저장소 디렉터리가 생성되며 원격 저장소의 내용이 로컬 저장소와 동기화됩니다.

이제 이 로컬 저장소에서  pull, push 등 명령어로 원격 저장소와 동기화 관리를 할 수 있습니다.

 

 

버전 관리 대상에서 제외하기(.gitignore)

로컬 저장소에 .gitignore 파일이 만들어져 있거나 만들면 버전 관리 대상에서 제외할 수 있습니다.

하위 디렉터리의 .gitignore 설정이 상위 디렉토리 설정보다 우선해서 적용됩니다.

설정 예제 의미
/ 가 없는 이름 web.xml .gitignore 이하의 모든 서브 디렉토리에서 설정한 파일(디렉토리)을 제외
/ 가 줄 마지막에 없는 이름 /file .gitignore 가 있는 디렉토리를 기준으로 상대 경로로 지정된 파일(디렉토리)를 제외
/ 가 줄 마지막에 있는 이름 path/ .gitignore 이하의 모든 서브 디렉토리에서 지정된 디렉토리를 제외
/ 가 줄의 마지막과 다른 곳에도 있는 경우 /file/ .gitignore 가 있는 디렉토리 기준으로 상대 경로로 지정된 디렉토리를 제외
! 으로 시작하는 경우 !/path/file ! 다음의 문자열의 파일(디렉토리)를 버전 관리 제외로 하지 않음. 상위 디렉토리에서 제외시켰다고 해도 하위 디렉토리에서 이 설정을 하면 버전 관리 대상에 포함시킴
# 으로 시작하는 경우 #/path/file 주석으로 취급

이것 이외에 와일드카드 문자도 활용 할 수 있습니다.

예를 들어 *.bak 하면 확장자기 .bak는 제외시킬 수 있습니다.

 

 

브랜치의 활용

https://aacii.tistory.com/342

 

git branch 관리: tracking, cherry-pick, stash

원격 브랜치 로컬로 가져오기(fetch)1. 원격 저장소(orign)의 모든 원격 브랜치를 로컬로 가져옴git fetch origin 2. 체크아웃할 수 있는 브랜치 목록 확인git branch -a브랜치 목록 중에서 원격 브랜치에는 r

blog.aacii.net

 

 

자주 사용하는 git 명령어 정리

브랜치 관련 명령은 위에 있는 게시물을 참고해 주세요.

 

설정 관련

git config --global user.name "사용자이름" 커밋할 사용자를 지정합니다.
git config --global user.email "메일주소" 사용자의 메일 주소를 지정합니다.
git config --list 현재 설정값들을 보여줍니다.

 

저장소 관련

git init 프로젝트이름 새로운 로컬 저장소를 프로젝트 이름으로 생성합니다.
git clone 원격저장소주소URL 원격저장소에서 전체 소스를 현재 로컬 저장소에 복제합니다.

 

파일 관련

gir rm 파일이름 대상 파일을 작업 디렉토리와 스테이지에서 삭제합니다.
git mv 파일1 파일2 대상 파일1을 파일2 으로 이름을 바꿉니다.
git config --global core.autocrlf true 이 값이 true 이면 윈도우로 체크아웃할 때 줄바꿈 문자(LF)를 윈도우의 줄바꿈 문자인 CRLF 으로 변환됩니다.
git config --global core.autocrlf input 리눅스 환경에서 이 값을 input으로 하는 경우 커밋할 때만 CRLF를 LF로 변환합니다.

 

로그 관련

git log 파일이름 해당 파일의 커밋 로그를 참조합니다. 
git diff 브랜치1 브랜치2 두 브랜치를 비교해서 차이점을 표시합니다.

 

커밋 변경

git commit -amend 이전에 커밋했던 내용에 새로운 내용을 추가합니다.
git revert 커밋번호 이전에 작성한 특정 커밋을 지울때 사용합니다.
rebase나 reset도 가능하지만 지우고 싶지 않은 커밋이 있는 경우 사용합니다.
git reset 모드 헤드 reset은 필요없어진 커밋을 삭제합니다.
모드에는 -soft, -mixed, -hard 가 있으며 head

 

 

 

 

728x90