본 실습은 Windows 10 에서 Git을 설치하고난 후 같이 설치된 Git Bash CMD를 이용해 연습합니다.
이 부분까지는 매번 Sourcetree를 이용해 처리하던 부분이라 쉽게 진행되었다. 그 이후가 문제지...😁
Git 저장소 만들기
기존 디렉토리를 Git 저장소로 만들기
프로젝트 디렉토리로 이동(기존에 있던 어떠한 디렉토리라도 상관 없음)
$ cd /d/Projects/TIL/
Git 명령어 실행
git init
Initialized empty Git repository in D:/Projects/TIL/.git/
MINGW64 /d/Projects/TIL **(master)
$ ls -al
total 12601
drwxr-xr-x 1 user 197609 0 3월 7 09:08 ./
drwxr-xr-x 1 user 197609 0 3월 6 09:37 ../
drwxr-xr-x 1 user 197609 0 3월 7 09:09 .git/ # <- 이 부분이 새로 생성되었음**
워킹 디렉토리 내부에 숨김 디렉토리로 .git 디렉토리
가 생성됨. 또한 CMD 창에 (master)
라는 부분이 생김
.git 디렉토리
에는 저장소에 필요한 뼈대 파일(Skeleton)이 들어 있다.- 현재
git init
명령만으로는 아직 프로젝트의 어떤 파일도 관리하지 않는 상태이다.
Git이 파일을 관리하게 하려면 저장소에 파일을 추가(git add
)하고 커밋(git commit
)해야 한다.
예제 2-1. README.md 라는 파일을 만들고 커밋해보자.
# 탐색기를 이용해 워킹 디렉토리로 이동 후 임시로 README.md 파일을 만들고 아무 내용이나 입력.
# 본인은 vi README.md 명령어를 이용해 파일을 생성했음
vi README.md
# vi README.md
테스트 파일 입니다.
$ git add README.md
warning: LF will be replaced by CRLF in README.md.
The file will have its original line endings in your working directory
$ git commit -m 'initial project version'
[master (root-commit) 87dc548] initial project version
1 file changed, 1 insertion(+)
create mode 100644 README.md
이제 우리는 명령어 몇 개로 순식간에 Git 저장소를 만들고 파일 버전 관리(VCS)를 시작했다.
참고로 git commit
할 때 메시지를 넣기위해 -m
이라는 옵션을 사용했다.
기존 저장소를 Clone 하기
다른 프로젝트에 참여하려거나(Contribute), Git 저장소를 복사하고 싶을 때 git clone
명령을 사용한다. (기존 VCS 시스템의 checkout
에 해당한다고 함)
앞에서도 이야기 했듯이 Git이 기존 Subversion 과 다른 가장 큰 차이점은 서버에 있는 거의 모든 데이터를 복사 한다는 것이다.
**git clone
을 실행하면 프로젝트 히스토리를 전부 받아온다.** 실제로 서버의 디스크가 망가져도 클라이언트 저장소 중에서 아무거나 하나 가져다가 복구하면 된다. (서버에만 적용했던 설정은 복구하지 못하지만 모든 데이터는 복구된다.)
git clone [url]
명령으로 깃헙에 있는 다른 프로젝트를 복사해보자.
예제 2-2. 깃헙에 있는 libgit2 라는 라이브러리 소스코드를 clone 해 보기
cd ../
$ git clone https://github.com/libgit2/libgit2
Cloning into 'libgit2'...
remote: Enumerating objects: 98656, done.
remote: Counting objects: 100% (98656/98656), done.
remote: Compressing objects: 100% (26646/26646), done.
remote: Total 98656 (delta 70303), reused 98594 (delta 70248), pack-reused 0
Receiving objects: 100% (98656/98656), 49.76 MiB | 13.35 MiB/s, done.
Resolving deltas: 100% (70303/70303), done.
Updating files: 100% (10336/10336), done.
위 명령은
libgit2
라는 디렉토리를 생성하고, 그 안에.git
디렉토리를 만든다.- 이미 있던 기존 저장소의 데이터를 모두 가져와 자동으로 가장 최신 버전을
Checkout
해 놓는다. libgit2
디렉토리로 이동하면Checkout
으로 생성한 파일을 볼 수 있고, 당장 하고자 하는 일을 시작할 수 있다.
libgit2
디렉토리가 아닌 내가 원하는 디렉토리 명으로 clone 하고 싶다면 명령어 제일 뒤에 내가 원하는 디렉토리 이름을 붙여주면 된다.
예제 2-3. mylibgit
이라는 디렉토리를 생성하고 clone
하기
$ git clone https://github.com/libgit2/libgit2 mylibgit
Git은 다양한 프로토콜을 지원한다.
https:// 프로토콜, git:// 프로토콜 그리고 user@server:path/to/repo.git 처럼 SSH 프로토콜을 사용할 수도 있다.
요약
저장소 생성
git init
git clone [저장소 주소] {[만들려는 디렉토리 명]}
파일 추가하기
git add 파일명
파일 커밋하기
git commit -m '커밋 메시지'
'TIL > GIT' 카테고리의 다른 글
[2장]되돌리기 (0) | 2020.03.10 |
---|---|
[2장]커밋 히스토리 조회하기 (0) | 2020.03.09 |
[2장]Git의 기초 - 수정하고 저장소에 저장하기 (0) | 2020.03.08 |
좋은 git 커밋 메시지를 작성하기 위한 8가지 약속 (0) | 2020.03.08 |
[1장]GIT 시작하기 (0) | 2020.03.06 |