[TIL] 이젠 진짜 공부하자 Git 명령어 (commit, push, pull ..)

2022. 9. 24. 12:47·Achieved 👩🏻/TIL
반응형

매일 미루고 있던 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
'Achieved 👩🏻/TIL' 카테고리의 다른 글
  • [TIL] cannot find -lopencv_core 에러 해결 - Opencv(C++) 설치하기
  • [TIL] pip, conda로 특정 버전의 패키지 설치하기 (업그레이드, 다운그레이드)
  • [TIL] Conda 가상환경 yaml 파일로 복제 & yaml로 가상환경 세팅하기
  • [TIL] 서버 환경 주피터에 여러 파일 한번에 업로드하기 (scp 작동 불가할 때)
당니이
당니이
씩씩하게 공부하기 📚💻
  • 당니이
    다은이의 컴퓨터 공부
    당니이
  • 전체
    오늘
    어제
    • 분류 전체보기 (136)
      • Achieved 👩🏻 (14)
        • 생각들 (2)
        • TIL (6)
        • Trial and Error (1)
        • Inspiration ✨ (0)
        • 미국 박사 준비 🎓 (1)
      • Computer Vision💖 (39)
        • Basic (9)
        • Video (5)
        • Continual Learning (7)
        • Generative model (2)
        • Domain (DA & DG) (5)
        • Multimodal (8)
        • Multitask Learning (1)
        • Segmentation (1)
        • Colorization (1)
      • RL 🤖 (1)
      • Autonomous Driving 🚙 (11)
        • Geometry (4)
        • LiDAR 3D Detection (1)
        • Trajectory prediction (2)
        • Lane Detection (1)
        • HDmap (3)
      • Linux (15)
      • PyTorch👩🏻‍💻 (10)
      • Linear Algebra (2)
      • Python (5)
      • NLP (10)
        • Article 📑 (1)
      • Algorithms 💻 (22)
        • Basic (8)
        • BAEKJOON (8)
        • Programmers (2)
      • ML (1)
        • 통계적 머신러닝(20-2) (1)
      • SQL (3)
      • 기초금융 💵 (1)
  • 블로그 메뉴

    • 홈
    • About me
  • 링크

    • 나의 소박한 github
    • Naver 블로그
  • 공지사항

  • 인기 글

  • 태그

    CV
    리눅스
    LLM
    Python
    NLP
    Linux
    백준
    domain generalization
    domain adaptation
    til
    continual learning
    코딩테스트
    자료구조
    pytorch
    Incremental Learning
    dfs
    conda
    백트래킹
    CL
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
당니이
[TIL] 이젠 진짜 공부하자 Git 명령어 (commit, push, pull ..)
상단으로

티스토리툴바