본문 바로가기

카테고리 없음

내가 보려고 만든 GitHub 명령어 총정리

아이펠 리서치 과정을 진행하면서 가끔 버벅일때가 많아 작성하게 되었다.

 

 

1. Local 저장소 설정

1) 로컬의 Git에 GitHub의 계정 정보 등록

$ git config --global user.email "이메일"
$ git config --global user.name "사용자이름"
  • --global 옵션은 특정 사용자 모든 저장소에 대해 적용한다는 의미,만약  프로젝트마다 다른 이름과 이메일주소 사용시 --global 옵션 제거하면 됨
$ git config -l //Git에 등록한 config의 정보를 모두 확인

 

*커널이 초기화 되는 가상환경에서 실습하는 경우

가상실습환경 주피터 노트북 사용시 매번 해줘야 되는 경우가 발생 이유가 궁금하여 찾아보니 
.gitconfig 속에 등록한 config 정보가 저장되어 있고 이 파일은 커널이 매번 초기화 되므로 발생됨
$ git config credential.helper "store --file ~/aiffel/.git-credentials"

위 명령어를 통해 계정정보를 원하는 위치에 저장가능 하므로, 초기화 되지 않는 repository에 설정 해 두면 될듯

 

2) Git으로 버전 관리 시작하기(git init)

버전관리를 진행할 폴더로 이동 후 버전관리를 위한 Git 심어놓기

$ git init
  • 이 디렉토리를 새로운 Git local 저장소로 만들었다는 의미
  • ls -a 로 확인해보면 .git 이라는 폴더가 생성됨

2. 버전관리 

1) git으로 변화 확인(git status)

git으로 버전을 관리하고 있는 directory를 git status 명령어를 통해 변화를 감지

$ git status

 

아래는 README.md 파일을 추가한 후 테스트

$ git status
On branch main

No commits yet

Untracked files:
    (use "git add <file>..." to include in what will be committed)
    README.md

nothing added to commit but untracked files present (use "git add" to track)
  • Untracked files : 새로운 파일 목록

 

2) git으로 버전만들기(git add & git commit)

1. staging area는 commit을 하기 전에 commit할 파일들을 골라놓는 곳

2. repository는 commit된 파일의 버전들을 모아놓는 곳입니다

 

2-1)스테이징하기 (git add)

staging area에 파일을 넣기

#여러개 파일 staging
git add 파일명1, 파일명2, ~

#작업폴더 모든 파일 staging
git add .

 

staging 취소

git restore --staged 파일명

 

2-2)commit하기 (git commit)

git commit -m '메세지'

 

commit 기록확인하기

git log --all --oneline
git log --all --oneline --graph
  • -graph 옵션 : 그래프(Vim 에디터가 켜져서 q로 종료해야 함)

 

3. 협업하기

 

github.com은 이제 기본 브랜치 이름을 master가 아니라 main으로 사용하라고 권장하므로 변경

git branch -M main

 

Github 레파지토리의 주소를 로컬 저장소에 있는 git에게 알리기

git remote add origin 원격저장소주소
  • push, pull 등을 사용하기 위해 원격저장소와 로컬저장소를 연결하기
  • repository 접속url 뒤에 git만 붙이면 됨

1) 로컬 저장소의 기록을 원격 저장소로 전송(git push)

$ git push origin main
  • origin으로 저장한 원격 저장소의 main branch로 push한다는 의미
  • -u 추가하면 이후에  origin main 생략 가능

2)git push 전에 git pull 부터 해야함!(git pull)

원격 vs 로컬 내용이 다르다면 로컬저장소에서 git push가 안되므로 원격저장소에 수정사항이 있다면 먼저 pull을 해야함

  • git pull 명령어는 git fetch + git merge 축약어
  • git fetch는 원격저장소에 있는 commit 중에 로컬에 없는 신규 commit을 가져오라는 뜻
  • git merge는 그걸 merge 하라는 뜻
git pull origin main
  • git pull 원격저장소주소 브랜치명 입력하면 특정 브랜치만 가져올 수 있음
  • -u 추가하면 이후에  origin main 생략 가능

3)원격 저장소 복제(git clone)

git clone 원격저장소주소

 

 

3. git의 branch 만들기

git 안에선 branch 기능을 이용해서 복사본을 만들 수 있고, 따로 버전관리도 할 수 있음

 

1) 프로젝트 사본생성(git branch)

git branch 브랜치이름

 

2) 브랜치로 이동(git switch)

git switch 브랜치이름

 

branch와 commit 내역 확인

git log --graph --oneline --all

 

3) branch 합치기(git merge)

 

main/master 브랜치로 다시 이동 후 git merge 브랜치명을 입력하여 합칠 수 있음

git switch main
git merge 브랜치명
  • merge할 branch와 같은 파일, 같은 줄을 수정했을 경우 merge conflict 발생하는데, 충돌사항 확인 후 남길 코드 선택

나중에

3-way, fast-forward, squash, rebase 등과 같은 merge 방법

git flow / trunk-based 브랜치 전략 등에 대해서도 추가로 작성 해 봐야겠다