ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 오픈소스(Open Source) & Glt Clone해보기
    Git 2022. 9. 22. 10:08

    # 오픈소스(OpenSource)
    GitHub에는 훌륭한 프로젝트들이 많습니다. 
    그리고 이런 프로젝트는 대부분 그 소스 코드가 공개되어 있습니다. 
    이렇게 소스 코드가 공개되어 있는 프로젝트를 '오픈 소스 프로젝트(open source project)'라고 하는데요
     ‘오픈 소스’가 뭘까요?
     간단히 설명하자면 프로그램의 소스 코드가 대중에 공개된 상태일 때 오픈 소스라고 합니다.
     오픈 소스라는 용어의 의미는 그것이 생겨난 역사적 배경을 살펴보면 좀더 잘 이해할 수 있습니다.


    ===========================================

    하지만 컴퓨터 프로그램 시장이 발전하면서 특정 회사가 어떤 프로그램을 만들고 그 사용료 등을 받는 것이 일반화되기 시작했는데요. 이런 변화와 함께 프로그램의 소스 코드들은 점점 그 프로그램을 만든 회사만 갖고 있고 공개되지 않기 시작했습니다. 그러니까 내가 고객으로서 어떤 회사의 프로그램을 쓰더라도 그 프로그램의 소스 코드를 볼 수는 없게 된 겁니다.


    하지만 이런 움직임에 반해 1983년 ‘리차드 스톨만(Richard Stallman)’이라고 하는 MIT의 연구원이 '자유 소프트웨어 운동'이라는 걸 시작했습니다. 아주 오래 전 소스 코드를 공유하던 문화로 돌아가자는 취지의 운동이었는데요. 그는 곧이어 '자유 소프트웨어 재단(Free Software Foundation)' 이라는 걸 세우고 이러한 운동을 조직화했습니다. 자유 소프트웨어 재단에서 소프트웨어는

    - 그 소스 코드가 공개되어야 하고

    - 누구나 코드를 자유롭게 가져다가 사용할 수 있고

    - 원래의 코드를 자신이 원하는 대로 수정할 수 있어야한다 

     

    # 다른프로젝트 가져오기 

    
    - 깃 주소 형태 
    https://github.com/[USERNAME]/[REPOSITORY_NAME].git
    [USERNAME]은 GitHub 사용자 이름
    [REPOSITORY_NAME]은 저장소를 생성할 때 지정한 저장소 이름 
    
    - git clone명령어 형식 
    git clone [REPO_URL] [DIR]
    [REPO_URL]에는 클론해올 저장소의 주소를 지정
     [DIR] 인자는 저장소를 로컬에 복제할 위치를 지정
    
    - git clone 해보기  
    
    yunajoe@yunajoe MINGW64 ~/Git
    $ mkdir GitClone
    
    yunajoe@yunajoe MINGW64 ~/Git
    $ cd GitClone
    
    yunajoe@yunajoe MINGW64 ~/Git/GitClone
    $ git clone https://github.com/tensorflow/tensorflow.git
    Cloning into 'tensorflow'...
    remote: Enumerating objects: 1429389, done.
    remote: Counting objects: 100% (153/153), done.
    remote: Compressing objects: 100% (121/121), done.
    remote: Total 1429389 (delta 59), reused 68 (delta 31), pack-reused 1429236
    Receiving objects: 100% (1429389/1429389), 946.35 MiB | 14.02 MiB/s, done.
    Resolving deltas: 100% (1161198/1161198), done.
    Updating files: 100% (27711/27711), done.
    
    
    yunajoe@yunajoe MINGW64 ~/Git/GitClone/tensorflow (master)
    $ ls
    AUTHORS             ISSUES.md          WORKSPACE           tensorflow/
    BUILD               ISSUE_TEMPLATE.md  arm_compiler.BUILD  third_party/
    CITATION.cff        LICENSE            configure*          tools/
    CODEOWNERS          README.md          configure.cmd
    CODE_OF_CONDUCT.md  RELEASE.md         configure.py
    CONTRIBUTING.md     SECURITY.md        models.BUILD

    # 명령어 정리

    git push -u origin master : 로컬 레포지토리의 내용을 처음으로 리모트 레포지토리에 올릴 때 사용합니다.(-u origin master가 무슨 뜻인지는 'Git에서 브랜치 사용하기' 챕터에서 배울 거니까 걱정마세요!)
    git push : 로컬 레포지토리의 내용을 리모트 레포지토리에 보내기 
    git pull : 리모트 레포지토리의 내용을 로컬 레포지토리로 가져오기
    git clone [프로젝트의 GitHub 상 주소] : GitHub에 있는 프로젝트를 내 컴퓨터로 가져오기
    # 클론한 저장소의 원격 저장소 위치 확인하기
    yunajoe@yunajoe MINGW64 ~/Git/GitClone/tensorflow (master)
    $ git remote -v
    origin  https://github.com/tensorflow/tensorflow.git (fetch)
    origin  https://github.com/tensorflow/tensorflow.git (push)

    GitHub Private 프로젝트 git clone하기

    - 일단 collobrator로 등록되어 있는 계정으로 로그인해주고

     

    git clone https://username@github.com/username/repository  
    $ git clone https://wai-luvd@github.com/wai-luvd/classification1.git

     

    댓글

Designed by Tistory.