매일 미루고 있던 Git 명령어 포스팅을 시작하려고 한다. 인턴을 하면서 브랜치를 새로 파서 내 로컬의 코드를 사내 git으로 commit 해야할 일이 있었는데 또 찐처럼 못하고 .. 헤맸기 때문... ! 가장 많이 참고한 곳은 이 곳이다! :3
# Git 영역
일단 개인 Local에 있는 코드를 업로드 하려면, git add
를 통해 Staging 영역으로 보내야한다. 그리고 git commit
을 통해 최종 코드를 Repository에 커밋한다!
# 시작하기
일단 git commit을 시작하려면 저장소(Repository)를 생성해야한다. (1)내 로컬에 있는 폴더를 저장소로 생성하거나, (2)이미 git에 올라와있는 코드를 로컬에 git clone
을 통해 받을 수도 있다.
$ git init #(1)
$ git clone (github URL) #(2)
# Commit
(1) 코드 수정 후 Staging 영역에 추가
위 방법을 통해 시작한 레포리지토리에 내 방식대로 코드를 수정했을텐데, 그럼 일단 commit을 하기 전에 앞서 설명한 Staging 영역에 추가해야한다.
$ git add . # 현재 디렉토리의 모든 업데이트를 스테이징 영역으로 추가
위 명령어 또는 git add -A 를 이용할 수 있다. 그리고 git status로 현재 add된 내역을 확인할 수 있다.
$ git status # 현재 add 내역을 확인할 수 있다.
(2) Repository에 commit하기
코드를 스테이징 영역으로 보냈으면 드디어 commit의 단계이다!
$ git commit -m "커밋 메세지"
만약 현재까지 커밋한 로그를 확인하고 싶다면, 다음과 같이 하면된다.
$ git log
참고로 commit을 하고, push를 꼭 해주는게 일반적이라고 한다. 만약 commit을 아무리 해도 웹에 업데이트가 되지 않는다면, 아래에 나와있는 push를 안하지는 않았는지... 확인해보자! (내얘기)
# Push / Pull
Push는 로컬 저장소에서 업데이트된 코드를 웹 Repository로 보내는 과정이고, Pull은 웹 Repository에서 업데이트된 내용을 로컬로 받아오는 과정이다. 일단 이를 위해서는 로컬과 웹 Repository를 연결해야한다. (만약 위 git clone의 과정을 통해 이미 로컬의 폴더가 웹 github과 연결되어있다면, 아래 과정은 하지 않아도 될 것 같다.)
$ git remote add origin (웹 github URL) # local과 web 원격 저장소 연결
여기서 origin은 remote repository의 이름이며, 다른 이름으로 설정해도 무방하다고 한다. Push와 Pull을 하는 과정은 다음과 같다.
Push
흔히 브랜치는 main(master와 유사)로 설정되므로, 별다른 브랜치가 없다면 main을 넣어주면 된다.
$ git push origin (브랜치이름)
Pull
$ git pull
# Branch
무언가 독립적인 작업을 하고싶을 때는, 브랜치를 새로 파면 된다! 새로운 브랜치에 커밋을 하면, 메인 브랜치에는 업데이트가 안되고 새로운 브랜치에만 업데이트된다. 일단 브랜치를 생성하는 법 부터 알아보자.
$ git branch new # (생성할 브랜치이름을 new라고 가정)
새롭게 생성된 new라는 브랜치에서 커밋을 하려면, 브랜치를 main에서 new로 전환해줘야 할 것! 이럴 때는 checkout을 사용한다.
$ git checkout new
그리고 새롭게 생성한 브랜치에 앞서 설명한 push를 해보자!
$ git push origin new # new라는 새로운 브랜치에 push
'Achieved 👩🏻 > TIL' 카테고리의 다른 글
[TIL] cannot find -lopencv_core 에러 해결 - Opencv(C++) 설치하기 (0) | 2022.08.25 |
---|---|
[TIL] pip, conda로 특정 버전의 패키지 설치하기 (업그레이드, 다운그레이드) (0) | 2022.03.22 |
[TIL] Conda 가상환경 yaml 파일로 복제 & yaml로 가상환경 세팅하기 (4) | 2022.03.03 |
[TIL] 서버 환경 주피터에 여러 파일 한번에 업로드하기 (scp 작동 불가할 때) (0) | 2021.08.17 |
[TIL] 내가 보려고 만든 Conda 가상환경 명령어 정리 (2) | 2021.08.16 |