Git 시작과 명령어

wjd15sheep·2024년 1월 19일
0

Web 기초

목록 보기
9/9
post-thumbnail

Git을 사용하며서 꼭 필요한 내용들로 정리합니다.
1. Git 시작하기
2. Git 명령어
3. Git pull하기
4. Git push하기
순으로 정리하겠습니다.


1. Git 시작하기

1.1 디렉토리에서 시작하기

처음 디렉토리를 생성하고 github에 자료를 올릴 때 상황

  • 터미널을 열고 해당 디렉토리로 이동 cd [경로]
  • git init치면 디렉토리에 .git이 생성된다.
  • github에 코드를 관리할 repositroy를 만들어 준다.
  • 디렉토리 커널에서 파일들을 git에게 맡긴다. git add [파일명 or .]
  • 디렉토리 커널에 git commit
  • 디렉토리 커널에서 git remote add origin [HTTPS or SSH]
  • 디렉토리 커널에서 git push -u origin main
  • github에 올라간 것을 확인
  • git을 사용하기 위한 세팅 끝

1.2 clone으로 시작하기

  • Github에서 원하는 repository를 찾아 들어가 오른쪽 code를 선택
  • HTTPS or SSH중 하나를 선택, 2번 링크를 눌러 복사
  • 터미널에서 원하는 경로에 git clone [링크]
  • git을 사용하기 위한 세팅이 끝

2. Git 명령어

git을 사용하기 위해선 명령어를 알아야 한다. Linux 명령어를 알고 있다면 git을 쉽게 다룰수 있다.

  • git init : git 저장소 생성하기
  • git clone [경로] : 저장소 복제 및 다운로드
  • git add : 변경 및 생성된 파일을 staging area에 올리기
  • git status : 현재 git 상태 확인
  • git log : git log 확인하기
  • git commit : staging area에 있던 파일들을 local repository에 저장하기
  • git push [원격 저장소 명] [브랜치 명] : local repository 저장된 코드(commit된 것)를 github repository에 저장하기
  • git pull : github repository에 저장된 내용을 local repository에 저장하기
  • git rebase -i HEAD~[숫자] : git commit 지정된 로그까지 수정하기

2.1 branch 명령어

  • git branch [branch 명] : 브런치 만들기
  • git checkout -b [브런치 명] : 브런치가 없으면 만들어서 브런치 변경
  • git switch [브런치 명] : 브런치 변경하기
  • git branch -l : local 브런치 확인하기
  • git branch -r : remote 브런치 확인하기
  • git branche -a : 모든 브런치 확인하기
  • git branch --d [브런치명] : local 브런치 삭제하기
  • git push [원격저장소 | origin] -d [브런치명]

2.2 되돌아가기

  • git reset --hard HEAD~[숫자] or git reset --hard 커밋해시코드
    • 되돌리는 버전 이후의 커밋을 삭제한다.
  • git revert HEAD~[숫자] or git revert 커밋해시코드
    • 되돌리는 버전을 새로 커밋하기(권장사항)

3. Git pull하기

remote repository에 내용을 받아와야 한다면 아래 명령어를 사용하라

  • git pull [옵션] [원격 저장소] [브랜치] 그럼 local repository에 내용이 반경되었을 것이다. pull은 merge를 같이 진행하기 때문에 merge 커밋이 하나 더 생기는 것을 볼 수 있다.
    • git pull --rebase remote 커밋들위에 local 커밋을 다시 생성하기 따라서 커밋 내역에 HEAD가 하나만 생긴다.

4. Git push하기

local repository의 내용이 변경이 되었다면 git status를 통해 상태를 확인 해봐라

  • unstaging, untracked에 변경된 사항이 있다면 git add [파일명 or .](참고 . : 모든 것을 의미)
  • git status git staging에 변경된 사항이 올라온 것을 확인
  • git commit 커밋 메시지 입력, git log에서 커밋이 확인 된 것을 확인
  • git push를 통해 remote repository에 올라간 것을 확인
    • 첫 push에 git push -u origin main해 주면 다음부터는 그냥 push만 해도 된다.
    • git push --force 강제로 push를 진행함, 충돌이 있더라도 무시하고 push

5. 충돌이 일어난다면

5.1 push에 충돌이 일어날 때

commit 후 push하는데 안된다면
remote repository의 커밋된 내용이 local commit을 넘어서 진행된 것이다.

  • 먼저 pull를 받아 merge or rebase를 통해 충돌을 해결해야 한다.(권장사항)
    • merge란? 현재 커밋을 한번 더 하여 merge 커밋이 생성된다. 따라서 커밋이 작업한 커밋과 merge 커밋 이렇게 두개가 HEAD 위에 생성된다.
    • rebase란? remote repository을 베이스로 깔고 우리가 작업한 내용을 커밋으로 올리기에 커밋 내용이 하나만 생긴다.

5.2 pull에 충돌이 일어날 때

* branch merge 이미지 확인하기
* branch rebase 이미지 확인하기 < 이미지 출처 : [ATLASSIAN Merging vs rebase](https://www.atlassian.com/git/tutorials/merging-vs-rebasing)>

참조
https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-Rebase-%ED%95%98%EA%B8%B0
https://www.atlassian.com/git/tutorials/merging-vs-rebasing

profile
개발자 준비생

0개의 댓글

관련 채용 정보