Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

codingfarm

Git 저장소 만들기 본문

버전관리/git

Git 저장소 만들기

scarecrow1992 2020. 10. 20. 23:30
  • Git의 기초적인 사용방법 들에 대해서 배운다.
  • Git에서 자주 사용하는 명령어들을 이곳에서 전반적으로 배울 예정이다.
    • 저장소를 만들고 설정하는 방법
    • 파일을 추적하거나(Track) 추적을 그만두는 방법
    • 변경 내용을 Stage하고 커밋하는 방법
    • 파일이나 파일 패턴을 무시하도록 Git을 설정하는 방법
    • 실수를 쉽고 빠르게 만회하는 방법
    • 프로젝트 히스토리를 조회하고 커밋을 비교하는 방법
    • 리모트 저장소에 Push하고 Pull 하는 방법

 

Git 저장소 만들기

  • Git 저장소를 만드는 방법은 2가지다.
    1. 기존 프로젝트나 디렉토리를 Git 저장소로 만드는 방법
    2. 다른 서버에 있는 저장소를 Clone 하는 방법

 

1. 기존 디렉토리를 Git 저장소로 만들기.

  • Git 저장소로 만들 디렉토리로 이동한다.
cd /home/user/your_repository

 

  • 해당 디렉토리에서 아래와 같은 명령을 실행한다.
git init
  • 이 명령은 .git 이라는 하위 디렉토리를 만든다.
  • .git 디렉토리에는 저장소에 필요한 뼈대 파일(Skeleton)이 들어있다.
  • 이 명령만으로는 아직 프로젝트의 어떤 파일도 관리하지 않는다.
  • .git 디렉토리 내부에 있는 파일들에 대해서는 Git의 내부에서 다룬다.

 

  • git이 파일을 관리하게 하려면 저장소에 파일을 추가하고 커밋해야 한다.
  • git add 명령으로 파일을 추가하고 git commit 명령으로 커밋한다.
git add *.c
git add LICENSE
git commit -m 'initial project version'

 

2. 기존 저장소를 Clone 하기

  • 다른 프로젝트에 참여(Contribute)하려거나 git 저장소를 복사하고 싶을 때 git clone 명령을 사용한다.
  • Subversion과 달리 checkout이 아는 clone 이라는 명령어를 쓴다.
    • Git은 Subversion과 달리 서버에 있는 거의 모든 데이터를 복사한다.
  • git clone [url] 명령을 실행하면 프로젝트 히스토리를 전부 받아온다.
git clone https://github.com/libgit2/libgit2
  • 위 명령은 현재 디렉토리에 libit2 라는 디렉토리를 만들고 그안에 .git 디렉토리를 만든다.
  • 그리고 저장소의 데이터를 모두 가져와서 자동으로 가장 최신 버전을 Checkout 해 놓는다.
  • 아래와 같은 명령으로 저장소를 Clone 하면 libgit2가 아니라 다른 디렉토리 이름으로 Clone 할 수 있다.
git clone https://github.com/libgit2/libgit2 mylibgit
  • 새로 생성되는 디렉토리 이름이 mylibgit이라는 것만 빼면 이 명령의 결과와 앞선 명령의 결과는 같다.

 

  • git은 다양한 프로토콜을 지원한다. 이제가지는 https:// 프로토콜을 사용했지만 git://를 사용할 수도 있고 user@server:path/to/repo.git 처럼 SSH 프로토콜을 사용할 수도 있다.
  • 자세한 내용은 서버에 Git 설치하기에서 다룬다.

 

 

'버전관리 > git' 카테고리의 다른 글

Git으로 파일 관리하기  (0) 2020.10.31
Git 설치 및 설정  (0) 2020.10.20
Git 기초  (0) 2020.10.18
버전 관리 시스템(VCS; Version Control System)  (0) 2020.10.18
Comments