25. 05. 22~23 git 특강

behumble·2025년 5월 21일

공부일지

목록 보기
17/20

회고

  • Git과 GitHub의 기본 개념과 명령어를 실습하며, 버전 관리와 협업의 중요성을 체감했다.
    branch, reset, revert 등 다양한 기능을 직접 써보니 실제 문제 해결 능력이 올라갔다.
    실제 프로젝트에서도 주기적인 commit과 백업, 그리고 pull/push 습관이 정말 중요하다는 걸 느꼈다.

Key_point

✅ Git

  • 모든것을 외울 필요는 없으나 이런게 있구나 정도는 알아두자.
  • 기본적인 명령어는 외우는 것을 추천
  • 작업트리, 스테이지, 저장소의 개념
  • .gitingore를 통해 관리가 필요없는 파일은 빼라
    -- 보안상 위험성이 있는 파일, 프로젝트와 관련 없는 파일, 용량이 커서 제외해야하는 파일
  • 되돌리기 reset, revert
  • branch 사용법 숙지
    -- 가지를 쳐서 독립적으로 작업을 진행할 수 있게 하는 기능

✅ GitHub

  • GIT과 관련해서 가장 많이 사용되는 원격 저장소
  • 지역저장소(내 컴퓨터), 원격저장소(서버)를 연결해주는 플랫폼

✅ Git vs GitHub

✅ 협업 시 주의사항

  • 꼭 pull 하고 push해라
    -- 매번 커밋했는지 물어보기 귀찮고 실제로 물어보기도 힘들기에..

5/20 필기

GIT

기초 내용

  • 리눅스 개발자인 리누스 토르발스가 개발
  • 버전관리에 유용, 분산 버전 관리 시스템
  • 버전관리의 필요성
    -- 코드나 문서의 변경이력을 기록하고, 이전 상태로 되돌릴 수 있음.
    -- 프로젝트에서 안전하고 효율적인 작업이 가능
    -- 특징 : 변경이력 추적, 복구, 협업, 백업

GIT의 특징

  • 버전 관리(Version Control)
  • git을 사용한다면?
    -- 파일 이름을 유지하면서 문서를 수정할 때 마다 언제 수정했는지, 어떤 것이 변경되었는지 기록 가능
  • 백업 : 현재 내 컴퓨터에 있는 자료를 다른 곳에 복제
  • 백업의 중요성
    -- 컴퓨터를 믿지말고 백업을 꼭 해야 함
    -- 2중, 3중, 4중으로 코드를 항상 백업하는 습관을 들여라
  • 협업 : 여러 사람이 함께 일하는 것
  • 협업 때 git 사용 시 장점
    -- 팀원들이 파일을 편하게 주고받으면서 일할 수 있음
    -- 누가 언제, 어떤 부분을 수정했는지 기록에 남길 수 있음

CLI(Command Line Interface)의 특징

  • 터미널에 직접 명령을 입력해서 git을 사용
  • 리눅스 명령어, git 명령어를 알아야 사용 가능
  • 대부분 개발자들이 CLI사용

기초 셋팅

  • 잘 깔렸는지 확인 : git
  • 이름 설정 : git config --global user.name "하고싶은 이름"
  • 이메일 설정 : git config --global user.email "이메일"
  • 이름 확인 : git config user.name
  • 이메일 확인 : git config user.email

리눅스 명령어

  • ls 명령어 옵션 / 결합하여 사용가능
    -- -a : 숨김 파일과 디렉터리를 함께 표시
    -- -l : 파일이나 디렉터리의 상세 정보를 함께 표시
    -- -r : 파일의 정렬 순서를 거꾸로 표시
    -- -t : 파일 작성 시간 순으로(내림차순) 표시
    -- clear : 화면 지우기

  • 디렉터리 이동 : cd 이동할 디렉터리 경로
    cf. 디렉터리 = 폴더이다.
    -- cd .. : 현재 위치에서 상위 디렉터리로 이동
    -- cd ~ : 홈디렉터리로 이동
    -- cd 하위디렉터리이름 : 현재 위치에서 하위 디렉터리로

  • 디렉터리 생성 : mkdir 생성할 디렉터리 이름
    -- ex) mkdir test : "test"라는 디렉터리를 만듬

  • 디렉터리 삭제 : rm -r 삭제할 디렉터리 이름
    -- ex) rm -r test : "test"라는 디렉터리를 삭제

빔(Vim, 터미널에서의 메모장(문서편집기)) 사용하기

  • 현재 디렉터리에 test.txt 파일 생성 : vim test.txt
    -- 위의 코드같은 경우에는 해당 파일이 없으면 생성
    -- 파일이 있으면 파일을 열어줌.

  • 입력모드와 ex모드
    -- ex 모드 → A or I 누름 → 입력모드
    -- 입력모드 → ESC 누름 → ex 모드

  • 내용 저장하기
    -- :을 입력하면 "INSERT"가 있던자리에 텍스트 입력 가능
    -- :wq 입력 후, Enter

  • ex 모드 명령어
    -- :w or :write : 편집 중이던 문서를 저장
    -- :q or :quit : 편집기를 종료
    -- :wq : 편집중이던 문서를 저장하고 종료
    -- :q! : 문서를 저장하지 않고 편집기를 종료

  • 위에 만든 .txt 문서 내용 확인하기
    -- cat 파일이름
    -- ex) cat test.txt

저장소 만들기

  • hello-git 디렉터리 생성 후 이동

    $ mkdir hello-git # hello-git 디렉터리 생성
    $ cd hello-git # 이동
  • git init : git 초기화하기

  • ls -al : 디렉터리 내부 확인

  $ ls -al
  total 35
  drwxr-xr-x 1 sjsj4 197609    0 May 22 14:22 ./
  drwxr-xr-x 1 sjsj4 197609    0 May 22 16:42 ../
  drwxr-xr-x 1 sjsj4 197609    0 May 22 14:19 .git/
  -rw-r--r-- 1 sjsj4 197609   16 May 22 11:37 .gitignore
  -rw-r--r-- 1 sjsj4 197609   13 May 22 14:19 bye.txt
  -rw-r--r-- 1 sjsj4 197609   13 May 22 11:29 coding.txt
  -rw-r--r-- 1 sjsj4 197609 1501 May 22 14:22 dfa
  -rw-r--r-- 1 sjsj4 197609   79 May 22 11:22 hello.txt
  -rw-r--r-- 1 sjsj4 197609    7 May 22 11:32 log.log
  -rw-r--r-- 1 sjsj4 197609   10 May 22 11:32 style.css
  -rw-r--r-- 1 sjsj4 197609    3 May 22 14:19 test.txt

버전 만들기

  • 작업트리(working tree) = 작업디렉터리(working directory)
    -- 파일 수정, 저장 등의 작업을 하는 디렉터리
    -- 우린 눈에 보이는 디렉터리

  • 스테이지(stage)
    -- 버전으로 만들 파일이 대기하는 곳
    -- 눈에 보이지 않음

  • 저장소(repisitory)
    -- 스테이지에서 대기하던 파일을 버전으로 만들어 저장하는 장소
    -- 눈에 보이지 않음

  • 버전생성과정
    -- 1. 작업 트리에서 파일을 수정하고 저장
    -- 2. git으로 버전 관리를 하기 위해 "add" 명령 실행하여 스테이지에 등록 (작업트리 → 스테이지)
    -- 3. 버전을 만들기 위해 "commit" 명령 실행(스테이지 → 저장소)
    -- 4. 스테이지에 있던 파일을 저장소에 저장(스테이지의 파일은 없어짐) / ver.v1 생성
    -- 추가 버전을 만들기 위해서는 위의 과정을 반복
    -- 5. 작업 트리에서 파일을 수정하고 저장
    -- 6. git으로 버전 관리를 하기 위해 "add" 명령 실행하여 스테이지에 등록 (작업트리 → 스테이지)
    -- 7. 버전을 만들기 위해 "commit" 명령 실행(스테이지 → 저장소)
    -- 8. 스테이지에 있던 파일을 저장소에 저장(스테이지의 파일은 없어짐) / ver.v2 생성

  • 작업트리에서 빔으로 문서 수정하기
    -- 아래는 ver1 생성 관련 코드이다
    -- git status 입력하면 아래의 코드가 나올 것이다.

    On branch master # 현재 master 브랜치에 있음
    No commits yet # 현재 커밋한 파일이 없음
    nothing to commit (create/copy files and use "git add" to track) # 현재 커밋할 파일이 없음

    -- vim hello.txt를 통해 txt파일을 만든 후 git status 확인하면 아래와 같이 나온다.

    On branch master #현재 master 브랜치에 있음
    No commits yet # 한번도 커밋을 하지 않았음(커밋 이력이 없다)
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
            hello.txt # hello.txt 파일이 현재 git이 추적하지 않는 상태이다.
    nothing added to commit but untracked files present (use "git add" to track) # 커밋할 내용은 없지만, 추적되지 않은 파일이 있음

    -- git add hello.text : "hello.txt" 파일을 스테이지에 추가

    $ git add hello.txt
    warning: in the working copy of 'hello.txt', LF will be replaced by CRLF the next time Git touches it
    

    -- git status : 다시 git의 상태를 확인

    $ git status
    On branch master
    
    No commits yet
    
    Changes to be committed: 
     (use "git rm --cached <file>..." to unstage)
           new file:   hello.txt # 스테이지에 new file인 "hello.txt"가 추가됐음

    -- git commit -m "커밋메세지" : 커밋을 실행
    --- ex) git commit -m "message1"

    $ git commit -m "message1"
    [master (root-commit) b9f665e] message1
     1 file changed, 3 insertions(+) # 추가됐음을 확인
     create mode 100644 hello.txt

    -- git status : 다시 git의 상태를 확인

    $ git status
    On branch master
    nothing to commit, working tree clean

    -- git log : 커밋한 버전 확인하기

    Author: Sungjae <sjsj4123@gmail.com> #처음에 설정한 이름과 아이디
    Date:   Thu May 22 11:08:21 2025 +0900 # 날짜
    
       message1 # 아까 입력한 커밋메세지

    -- 아래는 ver2 생성 관련 코드이다.
    -- vim hello.txt : "hello.txt" 파일을 수정
    -- git status : git의 상태 확인

    $ git status
    On branch master
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
            modified:   hello.txt
            
    no changes added to commit (use "git add" and/or "git commit -a")

    -- git commit -am "커밋메시지" : 한번 이상 커밋한 파일을 다시 커밋할 때만 사용 가능
    --- ex) git commit -am "message2"
    -- git log : git의 로그 확인

    commit 3a456ae1a5f9371571169ee987d32593f88fb223 (HEAD -> master) # HEAD는 최신버전 이라는 뜻이다.
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 11:16:44 2025 +0900
    
        message2 # message2를 통해 정상적으로 커밋이 됐음을 확인
    
    commit b9f665e8a4670e2bbe884a4cf9df50b01f50c04c
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 11:08:21 2025 +0900
    
        message1

변경사항 확인하기

  • vim hello.text : hello.txt 파일 수정하기

  • git status : git의 상태 확인

    $ git status
    On branch master
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
            modified:   hello.txt
    
    no changes added to commit (use "git add" and/or "git commit -a")
  • git diff : 변경 사항 확인하기

    $ git diff
    warning: in the working copy of 'hello.txt', LF will be replaced by CRLF the next time Git touches it
    diff --git a/hello.txt b/hello.txt
    index abb7273..3175f4b 100644
    --- a/hello.txt
    +++ b/hello.txt
    @@ -1,4 +1,3 @@
     안녕하세요!
     김성재입니다.
    -피곤합니다. # 빨간색 : 삭제한 내용, 초록색 : 추가된 내용
    -버전 2를 만들기 위해 내용을 추가합니다.
    +지금 git 수업을 듣고 있습니다.

.gitignore

  • 어떤 파일을 제외할까?
    -- 보안 상 위험성이 있는 파일
    -- 프로젝트와 관련 없는 파일
    -- 용량이 너무 커서 제외해야 하는 파일

  • .gitignore 파일
    -- git에서 관리할 필요가 없는 파일 또는 디렉터리를 작성
    -- 작성한 파일 또는 디렉터리는 git add 실행 시, 스테이징 안됨

  • .gitignore 파일 작성 방법
    -- 특정 파일 제외 : style.scc
    -- 현재 경로에 있는 특정 파일만 제외 : /style.css
    -- 특정 디렉터리 안의 모든 파일 제외 : folder/
    -- 특정 디렉터리의 특정 파일 제외 : folder/style.scc
    -- 특정 확장자 파일 모

  • .gitignore을 통해 관리할 필요가 없는 파일빼고 커밋하기
    -- 현재 파일은 "hello.txt, coding.txt, style.css, log.log"가 있다.
    -- 1. vim.gitignore : .gitignore 파일 생성
    -- 2. 제외할 파일 또는 디렉터리 작성
    --- ex)style.css
    --- ex)*.log
    -- 3. git add . : 작업트리에 있는 전체 파일을 스테이지에 추가
    -- 4. git status : git 상태 확인

    $ git status
    On branch master
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
            new file:   .gitignore
            new file:   coding.txt
            modified:   hello.txt

단계마다 파일 상태 알아보기

  • tracked 파일 : git이 버전 관리를 하고 있는 파일

  • vim bye.txt : bye.txt 파일 생성

  • git status : git 상태 확인

    $ git status
    On branch master
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
            new file:   .gitignore
            new file:   coding.txt
            modified:   hello.txt
    
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
            bye.txt
  • git add . : 스테이지에 추가하기

  • git status : git 상태 확인

    $ git status
    On branch master
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
            new file:   .gitignore
            new file:   bye.txt
            new file:   coding.txt
            modified:   hello.txt
  • git commit -m "message3"

    $ git commit -m "message3"
    [master 9e62bfd] message3
     4 files changed, 8 insertions(+), 2 deletions(-)
     create mode 100644 .gitignore
     create mode 100644 bye.txt
     create mode 100644 coding.txt
  • git log : git 로그 확인

    $ git log
    commit 9e62bfda9464a2c084600f8b7676805c2f071ce0 (HEAD -> master)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:04:35 2025 +0900
    
        message3
    
    commit 3a456ae1a5f9371571169ee987d32593f88fb223
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 11:16:44 2025 +0900
    
        message2
    
    commit b9f665e8a4670e2bbe884a4cf9df50b01f50c04c
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 11:08:21 2025 +0900
    
        message1
  • git log --stat : 커밋의 통계를 보여줌

    commit 9e62bfda9464a2c084600f8b7676805c2f071ce0 (HEAD -> master)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:04:35 2025 +0900
    
        message3
    
     .gitignore | 2 ++
     bye.txt    | 4 ++++
     coding.txt | 1 +
     hello.txt  | 3 +--
     4 files changed, 8 insertions(+), 2 deletions(-)
    
    commit 3a456ae1a5f9371571169ee987d32593f88fb223
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 11:16:44 2025 +0900
    
        message2
    
     hello.txt | 1 +
     1 file changed, 1 insertion(+)
    
    commit b9f665e8a4670e2bbe884a4cf9df50b01f50c04c
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 11:08:21 2025 +0900
    
        message1
    
     hello.txt | 3 +++
     1 file changed, 3 insertions(+)

작업 되돌리기(작업 트리)

  • git restore 파일명 : 작업 트리에서 수정한 파일 되돌리기
    -- 파일을 수정한 후, 소스가 정상적으로 작동하지 않는 등의 이유로 수정한 내용을 취소하고 가장 최신 버전으로 되돌려야 하는 경우에 사용

  • vim bye.txt : bye.txt의 내용을 수정

  • git status : git의 상태 확인

    $ git status
    On branch master
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
            modified:   bye.txt
    
    no changes added to commit (use "git add" and/or "git commit -a")
    
    sjsj4@sungjae MINGW64 ~/hello-git (master)
  • git restore bye.txt : "bye.txt" 파일을 수정 전으로 돌림

    sjsj4@sungjae MINGW64 ~/hello-git (master)
    $ git restore bye.txt
    
    sjsj4@sungjae MINGW64 ~/hello-git (master)
    $ cat bye.txt
    1
    2
    3
    4:

작업 되돌리기(스테이지)

  • vim bye.txt : "bye.txt" 파일을 수정

  • git add bye.txt

    $ git status
    On branch master
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
            modified:   bye.txt
  • git status : git의 상태 확인

    $ git status
    On branch master
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
            modified:   bye.txt
  • git restore --staged bye.txt

    $ git status
    On branch master
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
            modified:   bye.txt
    
    no changes added to commit (use "git add" and/or "git commit -a")

⭐최신 커밋 취소하기⭐

  • vim bye.txt : "bye.txt"파일을 수정

  • git commit -am "message4"

    $ git commit -am "message4"
    [master 533e682] message4
     1 file changed, 5 insertions(+), 4 deletions(-)
  • git log : 커밋 기록 확인

    $ git log
    commit 533e682213b4855e5b64c9a57fd758622dbeadc3 (HEAD -> master)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:20:44 2025 +0900
    
        message4
    
    commit 9e62bfda9464a2c084600f8b7676805c2f071ce0
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:04:35 2025 +0900
    
        message3
    
    commit 3a456ae1a5f9371571169ee987d32593f88fb223
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 11:16:44 2025 +0900
    
        message2
    
    commit b9f665e8a4670e2bbe884a4cf9df50b01f50c04c
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 11:08:21 2025 +0900
    
        message1
  • git reset HEAD^ : 최신 커밋 취소하기
    -- 최신 커밋이 취소되고, 스테이지에서도 내려감
    -- 취소한 파일은 작업 트리에 남아 있음
    -- 아래의 코드는 최신 커밋인 "message4"가 삭제되었다.

    $ git log
    commit 9e62bfda9464a2c084600f8b7676805c2f071ce0 (HEAD -> master)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:04:35 2025 +0900
    
        message3
    
    commit 3a456ae1a5f9371571169ee987d32593f88fb223
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 11:16:44 2025 +0900
    
        message2
    
    commit b9f665e8a4670e2bbe884a4cf9df50b01f50c04c
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 11:08:21 2025 +0900
    
        message1

되돌리기(reset)

  • 😂현실적으로 안쓰는게 Best!!😂
    -- 태초에 프로젝트를 진행하면서 엄청 이전버전으로 돌아가는 것 자체가 문제이다.
    -- 혹시나 사용할 일이 생기면 soft나 mixed를 사용해라

  • git reset --옵션 되돌아갈커밋해시 : 특정 커밋으로 되돌리기
    -- --hard : 특정버전의 커밋으로 되돌린 다음 그 이후 버전을 삭제
    -- --soft : 커밋 이력은 삭제되지만 변경 내용은 스테이지 상태로 남아있음
    -- --mixed : 커밋 이력은 삭제되지만 변경 내용은 작업트리에 남아있음

    cf. 커밋해쉬란?
    -- 아래 코드 중 commit 옆에 적혀있는 숫자들이다.

    ```bash
    $ git log
    commit 9e62bfda9464a2c084600f8b7676805c2f071ce0 (HEAD -> master)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:04:35 2025 +0900
    
        message3
    
    commit 3a456ae1a5f9371571169ee987d32593f88fb223
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 11:16:44 2025 +0900
    
        message2
    
    commit b9f665e8a4670e2bbe884a4cf9df50b01f50c04c
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 11:08:21 2025 +0900
    
        message1
    ```

hard 사용법

  • 위의 과정을 4번 반복하라(test commit 4까지)
    -- vim text.txt : text.txt 생성, 있으면 수정
    -- git add test.txt : 스테이지에 추가
    -- git commit -m "test commit 1" : 커밋

  • git log : git 로그 확인

    $ git log
    commit ff16f686536a5dc6cc952a446f27e2e7b65e1dae (HEAD -> master)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:36:20 2025 +0900
    
        test commit4
    
    commit 2bb81e1628fc0147cec356fbb38c23ca447311f9
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:35:57 2025 +0900
    
        test commit3
    
    commit b5a73f4dc7baa1eeecac86020cb2199089e665ad
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:35:33 2025 +0900
    
        test commit2
    
    commit 790469b66009e7d97f7e341dc23b87407b730ac9
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:34:59 2025 +0900
    
        test commit1
  • git reset --hard 커밋해쉬주소

    $ git reset --hard  b5a73f4dc7baa1eeecac86020cb2199089e665ad
    HEAD is now at b5a73f4 test commit2
  • cat test.txt : test.txt 파일 확인

    $ cat test.txt
    a
    b

되돌리기(revert)

  • 😂현실적으로 안쓰는게 Best!!😂
    -- 만약에 써야 할 일이 생긴다면 reset 말고 revert를 사용해라

  • git revert 취소할커밋해시
    -- 기존 커밋을 삭제하지 않고, 특정 커밋을 되돌리는 새로운 커밋을 추가하는 방식
    -- 커밋 기록을 변경하지 않고, 안전하게 작업을 취소하는 방법
    -- 협업 환경에서 주로 사용 / 팀프로젝트할 때 revert를 꼭 써야함
    -- revert를 사용할 경우에는 최신버전부터 취소하며 원하는 버전으로 가야함
    --- why? 최신버전과 원하는 버전 사이에 낀 코드와 충돌할 수 있음

  • vim test.txt : test.txt 파일에 내용 추가

  • git commit -am "test commit 5" : 스테이징과 커밋 동시 실행

  • git log : git 로그확인

    $ git log
    commit 9cded73ba615a17dab9e71493bf09af4e230c596 (HEAD -> master)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:10:04 2025 +0900
    
        test commit 5
    
    commit b5a73f4dc7baa1eeecac86020cb2199089e665ad
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:35:33 2025 +0900
    
        test commit2
    
    commit 790469b66009e7d97f7e341dc23b87407b730ac9
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:34:59 2025 +0900
    
        test commit1
  • git revert 취소할커밋해시
    -- test commit 5를 취소하려한다.

    git revert 9cded73ba615a17dab9e71493bf09af4e230c596
  • cat test.txt : 파일 확인

    $ cat test.txt
    a
    b
  • git log : 로그 확인
    -- 아래를 보면 커밋이 보류된 로그가 남아있다.

    $ git log
    commit dd85610ae4a5591b283235a266bb2a4f4bc5ae7e (HEAD -> master)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:14:03 2025 +0900
    
        Revert "test commit 5"
        커밋 메시지 작성 : 커밋 보류함
    
        This reverts commit 9cded73ba615a17dab9e71493bf09af4e230c596.
    
    commit 9cded73ba615a17dab9e71493bf09af4e230c596
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:10:04 2025 +0900
    
        test commit 5
    
    commit b5a73f4dc7baa1eeecac86020cb2199089e665ad
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:35:33 2025 +0900
    
        test commit2
    
    commit 790469b66009e7d97f7e341dc23b87407b730ac9
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:34:59 2025 +0900
    
        test commit1
  • git revert 취소할커밋해시
    -- test commit 1으로 돌아가기 위해 test commit 2를 취소하려한다.

    git revert b5a73f4dc7baa1eeecac86020cb2199089e665ad
  • cat test.txt : 파일 확인

    $ cat test.txt
    a
  • git log : 로그 확인

    $ git log
    commit 554bf55f7e9ec03120d1eb2df7ea287e9936a31d (HEAD -> master)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:19:06 2025 +0900
    
        Revert "test commit2"
        나는 1로 가고싶어.. 미안해
        This reverts commit b5a73f4dc7baa1eeecac86020cb2199089e665ad.
    
    commit dd85610ae4a5591b283235a266bb2a4f4bc5ae7e
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:14:03 2025 +0900
    
        Revert "test commit 5"
        커밋 메시지 작성 : 커밋 보류함
    
        This reverts commit 9cded73ba615a17dab9e71493bf09af4e230c596.
    
    commit 9cded73ba615a17dab9e71493bf09af4e230c596
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:10:04 2025 +0900
    
        test commit 5
    
    commit b5a73f4dc7baa1eeecac86020cb2199089e665ad
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:35:33 2025 +0900
    
        test commit2
    
    commit 790469b66009e7d97f7e341dc23b87407b730ac9
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 13:34:59 2025 +0900
    
        test commit1

브랜치(Branch)

  • 브랜치(branch)
    -- 독립적으로 작업을 진행할 수 있도록 해주는 기능
    --- 메인 작업 흐름(master,main)에서 나와, 다른작업을 분리해서 진행할 수 있도록 함
    --- 하나의 프로젝트에서 여러 개발자가 서로 다른 작업을 진행 시, 서로의 작업에 영향을 주지 않기 위해 필요

  • 기준 브랜치
    -- main or master 브랜치
    -- git으로 버전 관리를 시작하면 기본적으로 생성

  • 분기(branch)
    -- master 브랜치에서 새로운 브랜치를(A,B)를 생성

  • 분기된 브랜치의 특징
    -- 분기되기 이전에 master가 작업한 내용 유지(C1,C2)
    -- 새로운 기능 생성 가능(a1,a2)

브랜치(Branch) - master

  • 디렉터리 생성

    sjsj4@sungjae MINGW64 ~
    $ mkdir manual
    
    sjsj4@sungjae MINGW64 ~
    $ cd manual
  • git 초기화

    $ git init
    Initialized empty Git repository in C:/Users/sjsj4/manual/.git/
  • work.txt 만들어서 3번 커밋하기

    sjsj4@sungjae MINGW64 ~/manual (master)
    $ vim work.txt
    
    sjsj4@sungjae MINGW64 ~/manual (master)
    $ git add work.txt
    warning: in the working copy of 'work.txt', LF will be replaced by CRLF the next time Git touches it
    
    sjsj4@sungjae MINGW64 ~/manual (master)
    $ git commit -m "work1"
    [master (root-commit) 669052f] work1
     1 file changed, 1 insertion(+)
     create mode 100644 work.txt
    
    sjsj4@sungjae MINGW64 ~/manual (master)
    $ vim work.txt
    
    sjsj4@sungjae MINGW64 ~/manual (master)
    $ git commit -am "work2"
    warning: in the working copy of 'work.txt', LF will be replaced by CRLF the next time Git touches it
    [master cb7b27d] work2
     1 file changed, 1 insertion(+)
    
    sjsj4@sungjae MINGW64 ~/manual (master)
    $ vim work.txt
    
    sjsj4@sungjae MINGW64 ~/manual (master)
    $ git commit -am "work3"
    warning: in the working copy of 'work.txt', LF will be replaced by CRLF the next time Git touches it
    [master 90bc41b] work3
     1 file changed, 1 insertion(+)
    
    sjsj4@sungjae MINGW64 ~/manual (master)
    $ git log
    commit 90bc41b90c325b7314b072fb9c962a9b09ee1b26 (HEAD -> master)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:38:40 2025 +0900
    
        work3
    
    commit cb7b27d6f88dff7c93a3709ef1672f228df758be
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:38:21 2025 +0900
    
        work2
    
    commit 669052f4b414fd46251dc4839f52dff6194f05c2
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:37:57 2025 +0900
    
        work1
  • git branch : 생성되어 있는 브랜치 확인

    $ git branch
    * master
  • git branch A : A 브랜치 생성

  • git branch B : B 브랜치 생성

  • git branch : 생성되어 있는 브랜치 확인

    $ git branch
      A
      B
    * master
  • git log : 로그 확인
    -- work3를 master, A, B 셋 다 알고 있다.

    $ git log
    commit 90bc41b90c325b7314b072fb9c962a9b09ee1b26 (HEAD -> master, B, A) #A,B가 추가되었음
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:38:40 2025 +0900
    
        work3
    
    commit cb7b27d6f88dff7c93a3709ef1672f228df758be
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:38:21 2025 +0900
    
        work2
    
    commit 669052f4b414fd46251dc4839f52dff6194f05c2
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:37:57 2025 +0900
    
        work1
  • vim work.txt : 내용 수정

  • git commit -am "master commit content 4" : 커밋 실행

  • git log : 로그 확인
    -- 아래의 코드를 보면 HEAD는 master에 향해있고, (A,B)는 work3 까지만 안다.

    $ git log
    commit 57eda1d9b16462bfc3d63c2a8650d31a2a339ee4 (HEAD -> master)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:45:56 2025 +0900
    
        master commit content 4
    
    commit 90bc41b90c325b7314b072fb9c962a9b09ee1b26 (B, A)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:38:40 2025 +0900
    
        work3
    
    commit cb7b27d6f88dff7c93a3709ef1672f228df758be
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:38:21 2025 +0900
    
        work2
    
    commit 669052f4b414fd46251dc4839f52dff6194f05c2
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:37:57 2025 +0900
    
        work1

브랜치(Branch) - A

  • git switch 브랜치이름 : 브랜치 이동하기
    -- ex) git switch A : A 브랜치로 이동하기

    $ git switch A
    Switched to branch 'A'
    
  • git branch

    $ git branch
    * A
      B
      master
    
  • git branch : 브랜치 확인

    $ vim work.txt
    
    sjsj4@sungjae MINGW64 ~/manual (A)
    $ vim hello.txt
    
    sjsj4@sungjae MINGW64 ~/manual (A)
    $ git add .
    warning: in the working copy of 'hello.txt', LF will be replaced by CRLF the next time Git touches it
    
    sjsj4@sungjae MINGW64 ~/manual (A)
    $ git commit -m "A content 4"
    [A 8029402] A content 4
     2 files changed, 2 insertions(+)
     create mode 100644 hello.txt
    
    sjsj4@sungjae MINGW64 ~/manual (A)
    $ git log
    commit 802940216858e8447a50a040a64268e9df572de8 (HEAD -> A)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 15:08:26 2025 +0900
    
        A content 4
    
    commit 90bc41b90c325b7314b072fb9c962a9b09ee1b26 (B)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:38:40 2025 +0900
    
        work3
    
    commit cb7b27d6f88dff7c93a3709ef1672f228df758be
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:38:21 2025 +0900
    
        work2
    
    commit 669052f4b414fd46251dc4839f52dff6194f05c2
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:37:57 2025 +0900
    
        work1
    
    sjsj4@sungjae MINGW64 ~/manual (A)
    $ cat work.txt
    content 1
    content 2
    content 3
    A content 4
  • git log --online -- branches : 브랜치 마다 커밋 로그 확인하기

    $ git log --oneline --branches
    8029402 (HEAD -> A) A content 4
    57eda1d (master) master commit content 4
    90bc41b (B) work3
    cb7b27d work2
    669052f work1
  • git log 기준브랜치..비교브랜치
    -- 마스터 브랜치에는 없고, A 브랜치에는 있는 커밋을 보여줌
    -- ex) git log master..A

    $ git log master..A
    commit 802940216858e8447a50a040a64268e9df572de8 (HEAD -> A)
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 15:08:26 2025 +0900
    
        A content 4

브랜치(Branch) - master, A 병합

  • git switch master : master 브랜치로 이동하기

    $ git switch master
    Switched to branch 'master'
  • git merge A : master에 A브랜치 병합하기
    -- 아래의 코드는 work.txt에서 오류가 났다.
    -- 이유는 master도 4번째에 코드작성을 했고, A도 4번째에 코드작성을 했다.

    $ git merge A
    Auto-merging work.txt
    CONFLICT (content): Merge conflict in work.txt
    Automatic merge failed; fix conflicts and then commit the result.
  • vim work.txt : work.txt 파일 확인

    content 1
    content 2
    content 3
    <<<<<<< HEAD
    content 4 # 현재 브랜치(master)에서 수정한 내용
    =======
    A content 4 # 병합할 브랜치(A)에서 수정한 내용
    >>>>>>> A

    -- 파일 내용을 원하는 대로 수정하고 저장
    --- <<<<<<< HEAD, =======, >>>>>>> A는 삭제

    content 1
    content 2
    content 3
    
    content 4
    A content 4
  • git commit -am "merge A branch" : work.txt파일 스테이징 및 커밋하기

    $ git commit -am "merge A branch"
    [master 1e8efbc] merge A branch
  • cat work.txt : 최종 확인

    $ cat work.txt
    content 1
    content 2
    content 3
    
    content 4
    A content 4

GitHub

지역저장소(local repository)

  • 작업을 수행 한 후 커밋을 저장한 컴퓨터
  • 쉽게 말해서 그냥 내 컴퓨터

원격저장소 : 서버, github 등

  • 서버나 다른 저장소
  • 쉽게 말해서 내 컴퓨터 말고 다른 저장소

GitHub란?

  • git과 관련해서 가장 많이 사용되는 원격 저장소
  • 특징
    -- 무료 및 유료 서비스
    -- 다양한 오픈 소스 제공
    -- git을 설치하지 않고도 온라인상에서 버전관리 기능 사용 가능
    -- 지역저장소를 온라인상에 백업 가능
    -- 협업 프로젝트에 사용 가능
    -- 개발 이력 기록 가능

지역저장소를 원격저장소에 연결

  • github에 새로운 원격저장소를 만든다.

  • 기본적인 원격저장소 셋팅 방법이다.

  • 원격저장소 주소를 확인한다.

  • conn.txt 생성 후 원격 저장소 연결까지

    $ vim conn.txt
    
    sjsj4@sungjae MINGW64 ~/manual (master)
    $ git add conn.txt
    warning: in the working copy of 'conn.txt', LF will be replaced by CRLF the next time Git touches it
    
    sjsj4@sungjae MINGW64 ~/manual (master)
    $ git status
    On branch master
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
            new file:   conn.txt
    
    sjsj4@sungjae MINGW64 ~/manual (master)
    $ git commit -m "add a"
    [master 8ace95b] add a
     1 file changed, 1 insertion(+)
     create mode 100644 conn.txt
    
    sjsj4@sungjae MINGW64 ~/manual (master)
    $ git branch -M main # 기존 master에서 main 브랜치로 변경
    
    sjsj4@sungjae MINGW64 ~/manual (main) #main으로 바뀐것을 확인가능
    $ git remote add origin https://github.com/sungjaekimana/sesac.git
    
    sjsj4@sungjae MINGW64 ~/manual (main)
    $ git remote -v # 원격저장소에 연결되었는지 확인
    origin  https://github.com/sungjaekimana/sesac.git (fetch)
    origin  https://github.com/sungjaekimana/sesac.git (push)
  • git push -u origin main : 원격저장소에 파일 올리기
    -- -u : 지역저장소의 브랜치를 원격저장소에 연결, 최초 한번만 실행하면 됨
    -- origin : 원격저장소 주소
    -- main : 원격저장소 브랜치 이름
    -- 아래는 성공했다는 의미임

    $ git push -u origin main
    info: please complete authentication in your browser...
    Enumerating objects: 22, done.
    Counting objects: 100% (22/22), done.
    Delta compression using up to 16 threads
    Compressing objects: 100% (11/11), done.
    Writing objects: 100% (22/22), 1.63 KiB | 418.00 KiB/s, done.
    Total 22 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
    remote: Resolving deltas: 100% (1/1), done.
    To https://github.com/sungjaekimana/sesac.git
     * [new branch]      main -> main
    branch 'main' set up to track 'origin/main'.
  • vim conn.txt의 내용을 수정하고 github에 push
    -- 아래의 코드를 참고해라

    $ vim conn.txt # vin conn.txt 수정
    
    sjsj4@sungjae MINGW64 ~/manual (main)
    $ git add conn.txt # conn.txt 파일을 스테이지에 추가
    warning: in the working copy of 'conn.txt', LF will be replaced by CRLF the next time Git touches it
    
    sjsj4@sungjae MINGW64 ~/manual (main)
    $ git commit -m "add b" # 커밋
    [main 71079b3] add b
     1 file changed, 1 insertion(+)
    
    sjsj4@sungjae MINGW64 ~/manual (main)
    $ git push # github에 파일 업로드
    Enumerating objects: 5, done.
    Counting objects: 100% (5/5), done.
    Delta compression using up to 16 threads
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 298 bytes | 298.00 KiB/s, done.
    Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
    To https://github.com/sungjaekimana/sesac.git
       8ace95b..71079b3  main -> main
  • pull : 원격저장소에서 파일 다운로드
    -- 원격저장소와 지역저장소의 상태가 다른 경우 사용
    -- 원격저장소와 지역저장소의 상태를 같게 만드는 과정

  • git pull origin main : 원격저장소의 내용을 가져오기

    $ git pull origin main
    remote: Enumerating objects: 4, done.
    remote: Counting objects: 100% (4/4), done.
    remote: Compressing objects: 100% (2/2), done.
    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
    Unpacking objects: 100% (3/3), 974 bytes | 194.00 KiB/s, done.
    From https://github.com/sungjaekimana/sesac
     * branch            main       -> FETCH_HEAD
       71079b3..9492387  main       -> origin/main
    Updating 71079b3..9492387
    Fast-forward
     conn2.txt | 3 +++
     1 file changed, 3 insertions(+)
     create mode 100644 conn2.txt
  • ls : ls를 통한 확인
    -- github의 conn2.txt가 다운됐음을 확인

    $ ls
    conn.txt  conn2.txt  hello.txt  work.txt
  • 지역저장소와 원격저장소의 브랜치가 다른 경우 → 에러 발생


5/21 필기

GitHub

원격저장소 공유하기

  • git clone 원격저장소주소 home_pc
    -- home_pc 디렉터리에 원격저장소 복제하기

    
    $ git clone https://github.com/sungjaekimana/sesac.git home_pc
    Cloning into 'home_pc'...
    remote: Enumerating objects: 28, done.
    remote: Counting objects: 100% (28/28), done.
    remote: Compressing objects: 100% (14/14), done.
    remote: Total 28 (delta 2), reused 24 (delta 1), pack-reused 0 (from 0)
    Receiving objects: 100% (28/28), done.
    Resolving deltas: 100% (2/2), done.
    
  • git clone 원격저장소주소 office_pc
    -- office_pc 디렉터리에 원격저장소 복제하기

    
    $ git clone https://github.com/sungjaekimana/sesac.git office_pc
    Cloning into 'office_pc'...
    remote: Enumerating objects: 28, done.
    remote: Counting objects: 100% (28/28), done.
    remote: Compressing objects: 100% (14/14), done.
    remote: Total 28 (delta 2), reused 24 (delta 1), pack-reused 0 (from 0)
    Receiving objects: 100% (28/28), done.
    Resolving deltas: 100% (2/2), done.
  • home_pc에 들어가서 git log 확인
    -- clone을 사용하면 알아서 git 폴더로까지 지정을 해줘서 git log까지 확인가능

    
    $ cd home_pc
    
    $ git log
    commit 949238718504551d9b45350424c7b1b1f01f7952 (HEAD -> main, origin/main, origin/HEAD)
    Author: Pysung.py <sjsj4123@gmail.com>
    Date:   Thu May 22 16:44:22 2025 +0900
    
        Create conn2.txt
    
    commit 71079b3ed5f60a1f7ae3ad9c1eed194dae604752
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 16:42:46 2025 +0900
    
        add b
    
    commit 8ace95b31f8731a9ddfe4426275924eac86e9926
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 15:48:31 2025 +0900
    
        add a
    
    commit 1e8efbcf405d63f0013bcf0ef9cc06fe4fcbd2d3
    Merge: 57eda1d 8029402
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 15:25:35 2025 +0900
    
        merge A branch
    
    commit 802940216858e8447a50a040a64268e9df572de8
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 15:08:26 2025 +0900
    
        A content 4
    
    commit 57eda1d9b16462bfc3d63c2a8650d31a2a339ee4
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:45:56 2025 +0900
    
        master commit content 4
    
    commit 90bc41b90c325b7314b072fb9c962a9b09ee1b26
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:38:40 2025 +0900
    
        work3
    
    commit cb7b27d6f88dff7c93a3709ef1672f228df758be
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:38:21 2025 +0900
    
        work2
    
    commit 669052f4b414fd46251dc4839f52dff6194f05c2
    Author: Sungjae <sjsj4123@gmail.com>
    Date:   Thu May 22 14:37:57 2025 +0900
    
        work1
  • git remote -v : 지역저장소가 원격저장소와 연결되었는지 확인

    
    $ git remote -v
    origin  https://github.com/sungjaekimana/sesac.git (fetch)
    origin  https://github.com/sungjaekimana/sesac.git (push)
  • home_pc에서 firstHome.txt 만들고 지역 저장소로 commit

    
    $ git remote -v
    origin  https://github.com/sungjaekimana/sesac.git (fetch)
    origin  https://github.com/sungjaekimana/sesac.git (push)
    
    $ vim firstHome.txt
    
    $ git add firstHome.txt
    warning: in the working copy of 'firstHome.txt', LF will be replaced by CRLF the next time Git touches it
    
    $ git commit -m "add fitstHome"
    [main 81ba4d9] add fitstHome
     1 file changed, 3 insertions(+)
     create mode 100644 firstHome.txt
    
  • git push : 지역 저장소의 커밋을 원격 저장소에 올리기

    
    $ git push
    Enumerating objects: 3, done.
    Counting objects: 100% (3/3), done.
    Delta compression using up to 16 threads
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (2/2), 235 bytes | 235.00 KiB/s, done.
    Total 2 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
    remote: Resolving deltas: 100% (1/1), completed with 1 local object.
    To https://github.com/sungjaekimana/sesac.git
       9492387..81ba4d9  main -> main
  • office pc로 이동하여 github의 코드 받아오기

    
    $ cd office_pc
    
    $ git pull
    remote: Enumerating objects: 3, done.
    remote: Counting objects: 100% (3/3), done.
    remote: Compressing objects: 100% (1/1), done.
    remote: Total 2 (delta 1), reused 2 (delta 1), pack-reused 0 (from 0)
    Unpacking objects: 100% (2/2), 215 bytes | 35.00 KiB/s, done.
    From https://github.com/sungjaekimana/sesac
       9492387..81ba4d9  main       -> origin/main
    Updating 9492387..81ba4d9
    Fast-forward
     firstHome.txt | 3 +++
     1 file changed, 3 insertions(+)
     create mode 100644 firstHome.txt
    
  • office_pc에서 firstHome.txt 파일 수정 후 지역저장소에 commit

    
    $ vim firstHome.txt
    
    $ git add firstHome.txt
    
    $ git commit -m "add 4"
    [main 479cc2c] add 4
     1 file changed, 1 insertion(+)
    
  • 원격저장소에 push

    
    $ git push
    Enumerating objects: 5, done.
    Counting objects: 100% (5/5), done.
    Delta compression using up to 16 threads
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 258 bytes | 258.00 KiB/s, done.
    Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
    remote: Resolving deltas: 100% (1/1), completed with 1 local object.
    To https://github.com/sungjaekimana/sesac.git
       81ba4d9..479cc2c  main -> main

오픈소스 저장소 복제

  • 아래의 코드는 강사님의 github에서 game폴더로 파일을 가져온 후 작성했음
    -- game.py를 수정한 후 내 github에 push

$ cd game

sjsj4@sungjae MINGW64 ~/game (main)
$ ls
README.md  game.py

sjsj4@sungjae MINGW64 ~/game (main)
$ vim game.py

sjsj4@sungjae MINGW64 ~/game (main)
$ git commit -am "add my text"
[main de19a5c] add my text
 1 file changed, 1 insertion(+)

sjsj4@sungjae MINGW64 ~/game (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 16 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 315 bytes | 315.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/sungjaekimana/Python-Game.git
   8cb2b74..de19a5c  main -> main

0개의 댓글