본문 바로가기

소프트웨어

git bash commands 명령어 정리

 

안녕하세요 오늘은 IT 개발자라면 필수로 알아야 할 형상관리 툴 GIT에 대해서 공부해려고 합니다.

 

Q ) IT 개발자 중 git을 사용안하는 회사가 있을까요?

A ) 없습니다.

 

Q) git과 GitLab, GitHub 등과 차이가 뭔가요?

A ) Git은 버전 관리 도구이고, GitLab과 GitHub은 Git 저장소 호스팅 및 협업 플랫폼으로, 개발자들이 코드를 공유하고 협업하는 데 사용됩니다. 즉 Git을 활용하여 사용하기 쉽게 만든 것이 바로 Gitlab, GitHub라고 이해하시면 됩니다.

 

그러면 Git의 기본 명령어를 알아보겠습니다. 최근에는 IDE에서 git을 바로 연동가능 하며, 다양한 GUI형태의 툴이 제공되지만 가장 기본 명령어를 알지 못하면 의미가 없습니다.

Git Bash는 Windows 운영 체제에서 Git 명령어를 실행할 수 있는 유닉스 스타일의 명령 줄 인터페이스입니다 .

Git Bash는 기본적으로 Git설치 시 자동 설치 되니 윈도우 하단 찾기에서 git bash 라고 치시면 아래와 같이 쉽게 찾을 수 있습니다.

 

여기서 부터 하나씩 실행하면서 어떻게 되는지 확인해보세요

기본적으로 코드 버젼은 아래와 같이 관리하는 것을 추천드립니다.

Major : 대규모 기능 추가, Major 업데이트
Minor : 세부 기능 추가, 새로운 요구 사항 반영
Patch : 버그 수정, 사소한 기능 추가

SW 버전관리
v1.2.1
Major, Minor, Patch

 

초기 설정


// git 저장소 생성

git init


// name, email 설정(github 사용시 github 정보로 설정)

$ git config --global user.name "test name"
$ git config --global user.email testmail@gmail.com


// 등록된 user.name과 user.email 확인

$ git config --global --list


커밋관련


// 현재 변경 상태 확인

$ git status


// 파일 변경 내역 추가

$ git add testfile.txt


// 커밋

$ git commit -m "메시지"


// 커밋 내역 확인

$ git log


원격 저장소


// 로컬 저장소를 원격 저장소에 연결

$ git remote add origin https://github.com/id/repository.git


// 연결된 원격저장소 확인

$ git remote -v


// 원격 저장소에 변경 내역 반영

$ git push origin master


기본 명령어

 

// 원격 저장소 내용을 받아오기

$ git clone https://github.com/id/repository.git


// 원격 저장소 변경 내역 로컬에 반영

$ git pull origin master


// 잘못 커밋한 내역을 이전으로 되돌리기(커밋이 삭제되는게 아니라 작업 내역만 되돌아 가는 것임)

$ git revert "되돌리고 싶은 commit hash"


// hash id 확인

$ git log


branch


// 브랜치 리스트 확인

$ git branch


// developer11 이라는 브랜치 생성

  1. 새로운 브랜치 developer11이 생성됩니다.
  2. 이 새로운 브랜치는 현재 작업 중인 브랜치에서 분기됩니다. 즉, 새로운 브랜치에는 현재 작업 중인 브랜치의 커밋 기록이 그대로 유지됩니다.
  3. 현재 작업 디렉토리는 새로운 브랜치로 전환되지 않습니다. 따라서 여전히 이전 브랜치에서 작업을 계속할 수 있습니다.
$ git branch developer11


// developer11로 작업 브랜치 변경

$ git checkout developer11


// 원격 저장소에 반영

  1. 로컬의 developer11 브랜치에 있는 변경사항을 확인합니다.
  2. 해당 변경사항을 리모트 저장소인 origin의 developer11 브랜치로 푸시합니다.
  3. 변경사항이 리모트 저장소에 성공적으로 푸시되었으면, 다른 개발자들이 해당 변경사항을 확인할 수 있습니다.
$ git push origin developer11


// 브랜치 삭제(다른 branch로 checkout 후 삭제 해야 됨)

$ git branch -D developer11


// 삭제 내역 원격 저장소에 반영

$ git push origin :developer11


Merge, conflict, amend, stash

 

// merge 하려면 합칠 대상 브랜치로 checkout(master에 developer11 합치기)

$ git checkout master
$ git merge developer11


// conflict 발생 시 사람이 수동으로 해결 해야 됨
// 사람이 conflict 해결한 뒤 commit을 생성해서 해결 해야 됨 
// amend 바로 이전 커밋에 새로운 내용 추가
// 이전 커밋 메시지 수정 창 나타남.

$ git add test.txt
$ git commit --amend


 // stash는 commit 하기 전까지 일시적으로 작업을 저장해놓고 branch checkout

$ git status
$ git add wip.txt
$ git stash save
$ git stash list
$ git checkout master
$ git stash pop


fork, pull request, .gitignore


fork : 원본 저장소를 복사한 나만의 저장소. 작업 후 원본 관리자에게 pull request 요청(merge 요청)
pull request로만 merge 하도록 정책 사용할 수 있음(merge 전 코드리뷰 등 절차 도입 가능)

 

// fork 후 로컬로 clone

$ git clone https://github.com/id/repository.git
$ git commit -m "기능추가"
$ git push origin main


//.gitignore 파일 생성 후 commit 해주어야 함