본문 바로가기
👨‍🏫Study/Github

Github 명령어 정리

by 코푸는 개발자 2021. 7. 24.
728x90

  • Working Directory - 사용자가 직접 작업을하는 PC 내의 디렉토리(폴더)
  • Staging Area - commit 예정인 파일 및 디렉토리가 모여있는 장소
  • Local Repository - 원격 저장소에서 받아와 내 PC에 저장되는 개인 저장소
  • Remote Repository - 원격 저장소(깃허브)

* () 중괄호는 해당 이름을 직접 입력, "" or [] 대괄호는 해당 이름을 ""(큰따옴표) 안에 입력하는 것을 의미 

 

최초 옵션 설정(이름, 이메일 등)
git config --global user.name "사용자 이름"
git config --global user.email "example@naver.com"

필수적인 것은 아니지만 해두는 것이 좋음

 

 

원격 저장소(Remote Repository)를 내 컴퓨터에 있는 로컬 저장소(Local Repository)로 가져오기

git clone (원격저장소 URL)

ex)

git clone https://github.com/JaeKyungHeo/Project1.git

*이후 cd를 사용하여 생성된 디렉토리로 이동하여 git 작업을 수행해야함

 

 

로컬 저장소의 상태 확인
git status

 

 

Staging Area(커밋 예정인 파일 및 디렉토리들이 위치한 공간)으로 올리기
git add (파일이름) // 수정사항이 있는 특정 파일을 Staging Area으로 올린다.
git add (디렉토리명) // 해당 디렉토리 내에서 수정사항이 있는 모든 파일들을 Staging Area에 올린다.
git add * // 현재 변경사항 모두를 Staging Area에 올린다.
git reset (파일이름) // Staging Area에 올렸던 파일 다시 내린다.

*add를 통해 올릴 때는 사용되는 파일이름은 확장자명을 같이 입력해야함

 

Staging Area에 있는 파일 및 디렉토리들을 Local Repository로 작업을 확정
git commit -m "커밋메시지"

 

 

Local Repository에서 Remote Repository로 자료 올리기
git push (해당 branch명) // 로컬 레포지토리의 해당 브랜치 내용을 리모트 레포지토리의 해당 브랜치로 보낸다.(일반적인 형태)
git push origin master // 해당 브런치로 자료를 보낸다.

 

 

Remote Repository에서 변경된 내용 Local Repository로 가져오기
git pull // 원격 저장소에서 변경된 내용을 모두 반영
git pull (브랜치 명) // 해당 브랜치의 변경된 내용을 반영
git pull origin master // 브랜치의 변경된 내용을 반영

*특정 자신만의 브랜치 작업이 아니라면 항상 작업 초기에 수행하고 진행하는 것이 오류를 방지 할 수 있다.

 

 

로컬 저장소에서 삭제된 파일이나 폴더 원격 저장소에 반영
git rm [name] // 로컬 저장소의 삭제 내용을 깃에 반영

원격 깃허브의 파일을 삭제(로컬 저장소x)
git rm --cached [name] //원격의 파일만 삭제
git rm --cached -r [foldername] //하위 모든 폴더 삭제

 

 

Branch(형상관리 주요기능)

branch - 가지, 안전하게 격리된 상태에서 무언가 만들 때 사용 기본 branch는 master이고 다른 branch를 이용해 개발을 진행하고 병합하면 된다. 브랜치 기능을 사용하여 master 브랜치만을 관리하는 것이 아닌 여러가지 브랜치를 생성하여 다양한 방향으로 버전관리가 가능하다.

사진 출처: https://www.nobledesktop.com/learn/git/git-branches

위 그림을 보면 Master라는 브랜치(가지)에서 Your Work 가지(branch)와 Someone Else's Work 가지(branch)를 만들어서 각각의 작업을 수행하고 큰 맥락에서 Master 브랜치로 합쳐주는 작업을 통해 병렬적인 프로젝트 작업수행에 이점이 있다.(예를 들어, 웹 애플리케이션을 만드는 팀플을 할 때 2명의 팀원이 한명은 프론트 엔트(UI, UX) 부분을 구현하고 다른 한명은 백엔드(서버) 부분을 각각 구현하는 역할 분담을 했을 때 최종적으로 웹 애플리케이션으로 만들어질 때 합쳐주는 일을 편리하게 관리할 수 있다. 더불어 Master 브랜치의 노드를 통해 버전관리를 진행할 수 있다.

 

git branch (브랜치명) // 해당 이름을 가진 브랜치를 생성

git checkout (브랜치명) // 해당 이름을 가진 브랜치로 이동

git checkout -b (브랜치명) // 특정 branch를 만들고 생성된 브랜치로 이동

git checkout (브랜치명) // 현재 브랜치에서 입력된 브랜치로 이동

git branch -d (브랜치명) // 해당 브랜치를 삭제

git merge (다른 브랜치명) // 다른 브랜치의 변경 내용을 현재 브랜치에 병합

 

 

상황별 일반적인 사용 순서

처음 깃허브를 사용할 경우

git config --global user.name "사용자 이름"
git config --global user.email "example@naver.com"
(깃허브 사이트에서 프로젝트를 생성하고 원격 저장소의 URL을 복사해옴)
git clone https://github.com/JaeKyungHeo/Project1.git
(필요한 파일 및 폴더를 디렉토리에 올려줌)
git add (추가된 파일)
git commit -m"커밋 메시지"
git push origin master

 

로컬 저장소를 통해 작업(협업)을 진행 중인 경우

git pull // 다른 사람이 변경된 내용 반영(먼저 진행해줘야 충돌을 최대한 방지 가능)
git checkout -b (브랜치명) // 프로젝트 전체적인 맥락에서 자신이 맡은 역할을 진행할 브랜치 생성
(자신만의 작업 진행)
git add (변경된 내용)
git commit -m "커밋메시지"
git push (작업중인 브랜치명)
(작업이 마무리 되었다면)
git checkout master
git merge (작업한 브랜치명) // 깃허브 사이트 상에서도 진행 가능
(충돌이 빈번하게 일어남, 깃허브 사이트 상에서 가이드 해주는 순서대로 진행하면 쉽게 해결가능)
* 웬만하면 병합은 깃허브 상에서 pull request와 함께 진행하는 것이 일반적임(충돌시 해결방안을 잘 알려줌)

 

 

그외 Tip

 

cd .. // 현재 폴더의 상위 폴더로 이동한다.
cd (폴더명) // 해당 폴더로 이동한다.
cd \\ // 최상위 폴더로 이동
dir // 현재 폴더 내의 자료 정보를 보여준다.

여러 작업을 진행한 뒤 gitbash 내에서 위, 아래 방향키를 사용하여 이전 작업 명령어를 불러올 수 있다.

 

 

728x90

'👨‍🏫Study > Github' 카테고리의 다른 글

Github 사용법  (0) 2021.07.23

댓글