(4)-4.GIT - 2.+Training+Set+A

[Git & Gerrit Home으로 돌아가기]

2. Training Set A

  • 1.기본 작업
  • 2. 실습을 위한 (가상) 원격 Repository 생성 확인  
  • 3. 원격 Repository 확인

1.기본 작업

  1. cd ~ (상대경로) / cd c:(절대경로) 로 이동
  2. 앞으로 실습할 디렉토리를 생성.(ex.gittest) 그 안에 작업 디렉토리(Working directory) test1 등을 생성 생성한 디렉토리를 git directory로 선언합니다. (git init)
  3. 여기서 파일을 생성하고, 스테이징 하고, 커밋해봅니다.
  4. 여기서 이해하실 내용은 작업 디렉토리가 하나의 로컬 Repository란 것이죠.
  5. 이 안에 안보이도록 되어 있지만 숨겨진 폴더가 있어, 로컬에서의 오브젝트를 관리합니다.

1. 작업 dir에 test1.txt 파일 생성
$ mkdir gittest : 앞으로 실습할 폴더 생성
$ cd gittest
$ mkdir test1 : 첫 과제를 진행할 폴더 생성
$ cd test1
$ git init : git에서 관리하는 working dir로 선언
$ touch test1.txt || vi test1.txt : test1.txt 생성
2. $ git add * : 스테이징
3. $ git status로 상태 확인 : 언스테이징도 실습하세요.
4. $ git commit -m "init commit"
5. Git log로 상태 확인

2. 실습을 위한 (가상) 원격 Repository 생성 및 확인  

  1. 로컬 Repository에 있는 코드 변경 내역( commit 내역) 을 원격의 Repository로 옮기는 것을 push라고 합니다.
  2. git push origin master , origin 이 뭐고, master가 무었인지 항상 생각해야 합니다.
  3. 오늘은 실습을 위해 각자의 PC안에 가상의 원격 저장소를 만들고, 이 file로 된 URL이 원격 저장소라고 간주하고 실습하겠습니다.
  4. 아 그 전에 사용자 등록 부터 해요. (이전에 했으면 5로 건너뛰시면 됩니다.)

$ git config --global user.name "<사용자명>"
$ git config --global user.email "<메일 주소>"

  1. 이제 원격 Repository를 만들어봐요. (사실은 bare repository라서, 원격으로 쓸 수도 있습니다.)

c:/opt/repository/test.git 만들기
-> $ c:/opt/repository/ 폴더 아래에서 "git init --bare test.git" 실행
 - bare repository는 실제로 원격 repository로 쓸 수도 있습니다.

  1. 이제 다시 작업폴더로 돌아와서, 실전을 가장하고 서버 소스 부터 가져옵시다. 그리고 뭔가 작업 후(실제로 파일 하나 추가 ^^)  커밋까지 해요.

작업 디렉토리 로 이동하여
$ git clone file://c:/opt/repository/test.git' 실행
(뒤에 원하는 폴더명을 입력하면 그 폴더 이름으로 클론됨. Default는 test) -> 클론한 디렉토리로 이동 , v-remote.txt 파일을 추가하고 커밋
$ cd test
$ git remote -v : remote repository가 잘 설정되었는 지 확인.
(이젠 push,fetch,pull 뒤에 URL을 명시적으로 쓰지 않아도 됨. 단 해당 Working Dir에서만)
$ git add *
$ git commit -m "init"

  1. 작업을 완료했으니, 서버로 동기화 합시다.

다시 서버로 Push
-> $ git push origin master
현재 생성된 모든 Branch 확인 (all)
-> $ git branch -a (remote/origin/master 가 branch 에 등록 되는 지 확인)vi test

  1. 작업 디렉토리 2를 만들어서 서버에서 다시 소스를 가져와봐요. 작업 디렉토리 1에서 작업한 내용이 반영되었는 지 확인해요.

$ git clone file://c:/opt/repository/test.git
$ git fetch file://c:/opt/repository/test.git
$ git status : 확인

3. 원격 Repository 확인

  1. 현재 작업 폴더 외 별도 폴더 생성 후 Clone작업 실행 (작업 디렉토리 2를 만들어서 서버에서 다시 소스를 가져와봐요. 작업 디렉토리 1에서 작업한 내용이 반영되었는 지 확인해요.) 그리고 Clone 작업을 진행 한 폴더 아래에서 File 생성 후 Add-Commit-Push 

$ git clone file://c:/opt/repository/test.git
$ git status : 확인

  1. 작업폴더1에 Clone을 실행 후 파일 생성 후 Commit 작업폴더2에 Clone을 실행

$ git clone file://c:/opt/repository/test.git test2
v-remote.txt 변경 (작업폴더 2에서 작업하였음)

  1. 작업폴더1에서 파일 추가 생성하고 Push 작업폴더2에서 Fetch와 Pull 실행 후 결과 확인

$ git fetch file://c:/opt/repository/test.git : remote -v에 fetch, pull URL이 잘 설정되어 있으면 URL생략해도 됨.
$ git checkout FETCH_HEAD : fetch된 내용은 FETCH_HEAD 브랜치에 들어옴. 해당 내용을 확인하고, Merge여부를 결정함.
$ cat v-remote.txt
$ git checkout master
$ git pull file://c:/opt/repository/test.git : fetch로 보았던 결과를 현재 Working Dir과 Merge함.
$ cat v-remote.txt : merge가 잘되었는 지 확인