블로그 이미지
평범하게 살고 싶은 월급쟁이 기술적인 토론 환영합니다.같이 이야기 하고 싶으시면 부담 말고 연락주세요:이메일-bwcho75골뱅이지메일 닷컴. 조대협


Archive»


 

'소스코드 관리'에 해당되는 글 2

  1. 2013.06.24 git 기본 command
  2. 2013.05.27 git 노트
 

git 기본 command

ALM/SCM/VCS | 2013.06.24 23:23 | Posted by 조대협


1. git 기본 사용법

$ echo "test materials" > index.html

$


repository 생성

$ git init

Initialized empty Git repository in c:/dev/git/.git/

$ echo "This is test materials" > init.html

$ echo "This is test materials" > index.html

$ git add index.html

warning: LF will be replaced by CRLF in index.html.

The file will have its original line endings in your working directory.

$ git status

# On branch master

#

# Initial commit

#

# Changes to be committed:

#   (use "git rm --cached <file>..." to unstage)

#

#       new file:   index.html

#

# Untracked files:

#   (use "git add <file>..." to include in what will be committed)

#

#       init.html

$ git commit -m "Initial contents" --author="Terry <bwcho75@gmail.com>"

[master (root-commit) eb86eb0] Initial contents

 Author: Terry <bwcho75@gmail.com>

warning: LF will be replaced by CRLF in index.html.

The file will have its original line endings in your working directory.

 1 file changed, 1 insertion(+)

 create mode 100644 index.html

 

수정 하기

$ echo "append" >> index.html

$ git add index.html

$ git commit -m "append"


commit history 확인

$git log master



2.태깅

$git tag -a 0.2 -m "v0.2 tagging"


태그 버전들 확인하기

$git tag


각 태그 버전으로 이동하기

$git reset --hard <태그명>


3. 브렌치


생성

$git branch "브렌치이름"

브렌치 목록 보기

$git branch 

- 현재 사용중인 branch는 *표로 보임


브렌치 전환하기

$git checkout "브렌치이름"

메인 master로 전환하기

$git checkout "master"


merge 하기 (현재 브렌치에, 브렌치명의 파일들을 합치기)

$git merge "브렌치명"


tag와 branch의 차이

- tag는 그 순간의 스냅샷을 보관하기 위함

- branch는 그 순간부터 붙여서 계속 해서 개발해나가기 위함





'ALM > SCM/VCS' 카테고리의 다른 글

github 연동 방식 메모  (0) 2014.01.12
git 사용법과 소스 관리  (6) 2013.07.28
Git branch reference  (0) 2013.06.25
git 기본 command  (0) 2013.06.24
VCS 브렌치 관리 전략  (0) 2013.05.27
git 노트  (0) 2013.05.27

git 노트

ALM/SCM/VCS | 2013.05.27 00:52 | Posted by 조대협
Initializing a Repository in an Existing Directory

If you’re starting to track an existing project in Git, you need to go to the project’s directory and type

$ git init

This creates a new subdirectory named .git that contains all of your necessary repository files — a Git repository skeleton. At this point, nothing in your project is tracked yet. (See Chapter 9 for more information about exactly what files are contained in the .git directory you just created.)

If you want to start version-controlling existing files (as opposed to an empty directory), you should probably begin tracking those files and do an initial commit. You can accomplish that with a few git addcommands that specify the files you want to track, followed by a commit:

$ git add *.c
$ git add README
$ git commit -m 'initial project version'

We’ll go over what these commands do in just a minute. At this point, you have a Git repository with tracked files and an initial commit.




git clone은 무엇일까??

Working directory
Index(Staging)
Head 의 개념은 무엇일까?

--------------

VCS (Version Control System) or SCM

중앙 집중형 (CVS,Subversion) - 서버가 문제가 생기면 협업이 불가능함
분산형 (Git,Mecurial, Bazzar) - 각 클라이언트가 각각 저장소를 가지고 있으며, 서버가 문제가 생겨도 지속 적인 작업이 가능하고, 서버가 날라가도, 복구가 가능하다. 또한 중앙 집중식 이외에도, Commit에 대한 다양한 Workflow 구현이 가능하다.

특징
git는 delta를 저장하는 것이 아니라, 순간 snapshot을 저장한다.
파일을 파일명이 아니라 SHA-1 해쉬 값으로 저장함. (git 만을 통해서만 접근 가능)

파일의 상태
modified - 수정되었으나, stage나 commit되지 않은 상태 (working directory 안에 존재)
stage - 수정하였으며 곧 commit할 상태라고 표시 (staging area라는 별도 영역에 존재함)
add라는 명령어가 다른 모든 버전 관리 시스템에서는 없던 파일을 추가하는 기능이지만, git에서는 stage에 파일을 추가(add)하는 명령이다 보니, 조금 헷갈릴 수 있다.


- 코드리뷰 등에 유용하게 사용될 수 있음.
- 실제 메인에는 저장되지 않았지만, 변경 내용은 저장이 되서, 다른 사람들이 볼 수 있는 상태가 됨. 
commited - 서버에 저장된 상태 (git 디렉토리에 존재)


도구
git flow - 개발에 사용되는 몇개의 브랜치만 관리할 수 있게 해줌
master branch: 최종 릴리즈된 소스 코드만 관리
 develop : 개발중인 코드
 feature : develop branch로 부터 특정한 새로운 기능을 개발할때만 사용, 완료후 develop로 merge
 release
 hotfix branch : hot fix용 etc


gerrit - git 기반의 코드 리뷰 도구.
(이전 버전과 코드 라인비교, 라인단위 코멘트, 코드 승인 프로세스를 지원함)


git 파일들을 ${repository}/.git안에 저장되어 있으며, 각 파일들은 SHA-1 으로 파일명이 encrypt되어 있어 있어서, 그냥은 볼 수 없음


'ALM > SCM/VCS' 카테고리의 다른 글

github 연동 방식 메모  (0) 2014.01.12
git 사용법과 소스 관리  (6) 2013.07.28
Git branch reference  (0) 2013.06.25
git 기본 command  (0) 2013.06.24
VCS 브렌치 관리 전략  (0) 2013.05.27
git 노트  (0) 2013.05.27