Git CLI 알아보기 (명령어)

    * 이 글은 '제주코딩베이스캠프(링크)' 의 알잘딱깔센 GitHub 무료 강좌(링크)를 참고해 작성했습니다.

    git clone

    역할과 사용법

    원격 저장소 (GitHub)의 코드를 로컬 컴퓨터에 받아오고 싶다면??
    git clone 명령어를 활용하면 됩니다.

    아래 예시는 테스트를 위해 새로운 Directory 를 만들어서 진행하겠습니다!!
    (Directory 생성, Diretory 이동 명령어도 같이 확인할 수 있어요)
    $mkdir testFolder_clone
    $cd testFolder_clone
    $git clone git@github.com:kay0710/git_test.git .

    설명

    3줄로 끝이라니... 너무 간단하죠?
    이제 과정에 대해 자세히 설명하겠습니다.

    1. 다운받을 원격 저장소의 주소 복사하기
       GitHub Repository 접속 ➡️ Code 클릭 ➡️ 주소 복사

    2. Folder 만들고 다운받기
       Git bash 실행 ➡️ Directory 생성 (mkdir <folder name>) ➡️ Directory 이동 (cd <folder name>) ➡️ git clone

      Git bash 를 실행하고 clone 을 통해 받을 파일이 저장될 Directory를 만들어 줍니다.
      clone 명령어를 실행시킬 Directory (위 단계에서 생성한) 로 이동해주고,
      마지막으로 git clone 명령어 실행!!

    Tip

    * git clone 명령어의 마지막에 "." 의 역할은?
       "." 을 입력하면 현재 Directory 에 원격 저장소의 내용물만 받아오고,
       "." 을 입력하지 안으면 원격 저장소 전체를 받아옵니다
       아래 스크린샷을 비교하면 이해하기 편해요. (폴더의 경로에 주목해주세요.)
    <"." 을 입력한 경우>
    <"." 을 입력하지 않은 경우>

     


    git pull

    역할과 사용법

    git pull 명령어는 원격 저장소에 업데이트된 데이터를 가져와 병합할 때 사용해요.
    명령어는 간단합니다.
    $git pull​

     

    하지만 프로젝트 일반적으로 1명이 진행하지 않아요.
    그래서 아래와 같은 문제가 발생할 수 있어요.
    |-------------------------------- 시간 -----------------------------|
    Original
    개발자 A ---- clone ------------ push 1
    개발자 B ------------ clone ---------------- push2 >> Error 발생!!

     

    A 와 B 는 모두 Original 을 Clone 받아 수정했습니다.
    A 가 먼저 push 를 했지만, B 는 이를 모르고 Original 을 기반으로 수정을 더 진행합니다.
    B 가 작업을 끝내고 push 를 하려하면???
    A 가 작업한 내용과 충돌이 발생하게 되는 거죠!!

    이를 해결하는 방법도 있겠죠?
    1. 로컬 main 과 원격 main 을 서로 다른 Branch 로 보고 병합하는 방법
    $git pull --no-rebase​


    2. 시간 순서대로 병합하는 방법

    $git pull --rebase

    설명

    git add, commit, push

    이번 글에서는 git pull 을 위해 add, commit, push 를 진행했습니다.
    add, commit, push 는 이전글 (Git commit 이해하기 (feat.명령어) (링크))에서 상세히 다뤘으니 참고해주세요!

    pull 을 실행하기 전 원격 저장소에 새로운 파일을 업로드해보겠습니다.
    * 명령어의 이해를 위해 Directory clone_test1 과 clone_test2 는 다른 계정이라고 가정할게요 (1인 2역!!)
    $git add .
    $git commit -m "comment"
    $git push
    위 명령어를 통해 clone_test2 라는 계정에서 "pull_test_newFile.jpg" 라는 새로운 파일을 업로드했습니다.

    git pull

    이제 clone_test1 라는 사람이 업데이트된 내용을 로컬로 받아오는 과정을 볼게요.
    $git pull​

     

    위 명령어를 수행하면 원격 저장소로부터 변경된 내용을 받아와 병합을 수행합니다.


    * git pull 명령어는 main 으로 지정된 Directory 에서 수행해야 한다.
      그렇지 않으면 아래와 같은 Error 를 만나게 된다

    Tips

    로컬에서 수정한 파일을 원격저장소에 올리려면?
    git 명령어를 사용해 업로드하려면 선행 조건이 있어요.
    "권한을 얻는 것!"

    Settings ➡️ Collaborators ➡️ passowrd 입력 ➡️ Add people 버튼 클릭 ➡️ 권한을 줄 계정입력
    원격 저장소와 로컬 저장소의 싱크가 맞지 않다면?
    예를 들어 Commit 의 수가 달라 로컬 저장소로 강제로 맞추고 싶다면 아래 명령어를 사용하면 됩니다.
    * 협업 시에는 문제가 발생할 수 있으므로 주의 (쓰지 말자!)
    $git push --force​

    댓글

    Designed by JB FACTORY