관리 메뉴

한글창제의 기쁨

Git 기본 명령어 / Git tag, Merge 본문

분류없음

Git 기본 명령어 / Git tag, Merge

timesurfer 공간지배자 2016.07.21 20:20
기본 구조 


특징
1. 분산 개발

2. 강력한 선형 개발 지원

3. 대형 프로젝트에 합리적임

4. 암호회된 인증 히스토리 


5. 손쉬운 스크립팅 도구 제공



Each file in the Working Directory can be in one of two states: Tracked or Untracked. All files in the Working Directory that were neither in the last snapshot nor in the Staging Area are Untracked files. Tracked files are files that were in the last snapshot; The Tracked files (e.g. Git controlled files) in turn can be in on the following three (sub)states:





1. 초기화 및 시작 
Git Config 개인 환경설정
git config --global user.name "이름"
git config --global user.email "이메일정보"

git init : 해당 폴더를 git 폴더로 사용하고자 할 사용합니다.
            .git 폴더가 생성됩니다.

git add [filename / .]   index 를 추가해줘서 git 관리대상에 추가합니다.
     => git add ./example.jsp

git commit [option] 로컬 레파지토리에 파일을 추가합니다.
     => git commit -m "커밋 내용"
          변경사항 커밋시 메세지를 해당 내용으로 넣어 수행한다. (별도의  다음 프로스에 대한 화면 없음)
           
     => git commit -a -m "커밋 내용"  
           변경사항을 전부 Add 하고 commit을 수행한다.

Remote 연결
git remote : 연결된 리모트 별칭 확인
git remote -v : 연결된 리모트 상세 정보를 확인합니다.
git remote add : 리포트 깃 레파지토리 연결을 추가합니다.
git remote remove  : 리포트 깃 레파지토리 연결을 삭제 합니다.

Push  (repote repository ..)
git push [remote 별칭] [branchName]


pull 원격저장소의 변경된 내역을 로컬로 가져와 Merge 한다.
git pull

fatch  원격 리모트 저장소의 내용을 끌어와 로컬 데이터와 합치지 않고, 끌어오기만 할때 사용.

cloen 원격저장소의 내역을 로컬로 가져올때 사용합니다.
git cloen [repository 경로 (SSH/HTTP)]
git cloen git@gitlab.knkcorp.com:knktms/knkproject.get


chechout  branch 를 이동할때 사용.
git checkout  현재 활성화된 branch
git checkout [branch Name] 활성화 brance를 옴김

branch
git branch  : 브렌치 목록을 보여준다.  *가 있는 브렌치가 현재 작업중인 영역

git branch [create branch 명] [version]  : 새로운 브렌치 생성 [해당 버전으로 생성 한다.]
git branch develop v123a1fq


Log 보기
git log [-p] [3] : 상세 내역을 확인하며
git diff [origin/master]  : 변경된 파일의 내용을 확인할때 사용합니다. [local 혹은 remote내용 fatch 후 확인할때]

2. Rollback과 Merge 그리고 Tag
2.1 Tag & Merge
tag
git tag [테그명] [브랜치명] : 현시점을 테그
git tag : 현재 테그된 목록을 확인한다.

Merge
git merge [브랜치명]  : 현재 작업중인 브랜치로 [브랜치명]의 브랜치를 머지한다. --squash 옵션으로 여러 커밋내용을하나의 커밋으로  묶을수 있다.


2.1 Rollback
Reset : 최근 작업한 내역에 대한 commit을 포기하고, 이전으로 회귀 
             옵션  --softt : 이전 커밋을 스테이징 하고 커밋은 하지 않는다.
                     --hard : 저장소와 작업 트리에서 커밋을 제거한다.


git rest --soft HEAD^ : 최신의 바로 한단계 이전
git rest [commit name] : 해당 커밋 내용 취소
git rest --hard : 이전단계로 돌아간다. 

git rest HEAD^ : 최긴 한단계 취소
git rest HEAD^^ : 최근 뒤단계 취소

Diff : 차이점 비교하기 
git diff
최근 커밋된것과의 차이점을 알수있다(스테이징 영역과 현재 작업트리의 차이점)
git diff --help 명령어를 실행하면 로컬에 설정된 메뉴얼을 읽어볼수있다.

git diff --cached
스테이지에 올라가 있고(git add) 실제 커밋되지 않는 내용을 확인 할수 있다.

git diff master develop
master  브렌치와 develop 브렌치의 차이점 비교.

git diff origin master
fetch 해서 가져온 것과 비교한다.

git diff HEAD 저장소, 스테이징, 작업트리의 차이점을 모두 확인


3. Remote Branch 실제 삭제
remote branch delete  : 실제 브렌치 삭제
git branch -D [브랜치명]       :  로컬 저장소의 브렌치 삭제
git push [별칭] :[브랜치명]   :  원격 저장소의 브랜치 삭제
git push origin :develop




저작자 표시
신고
4 Comments
  • Git user 2017.11.14 10:27 신고 리눅스 서버에 git 설치후에 최초 레파지토리 구성방법, 사용자 계정 권한 구성과 윈도우 환경의 클라이언트(user)가 어떻게 git 레파지토리에서 소스를 내려 받는지 문의드려도 될까요?
  • Favicon of http://mycup.tistory.com BlogIcon timesurfer 공간지배자 2017.11.15 09:26 신고 리눅스 서버에 자체 서버를 만드시려면 오픈소스인 gitlab을 이용하시구, 웹콘솔에서 user 및 Repository 생성 후 git clone 후 해당 폴더에서 프로젝트생성후 사용하시면 됩니다.
  • 사요나라 2017.11.16 22:21 신고 Git tag push 하는 방법질문드립니다.
    1.특정02 branch로 개인저장소 checkout
    2. rmote등록 완료
    3. push 하면서 tag생성 방법을 모르겟어요.
    branch 는 repo forall -c push origin HEAD:ref/release/breanch01

    하면 비트버킷억 브랜치가 생성되는데 tag 할때는 어떻게 command 사용해야 하나요?
  • Favicon of http://mycup.tistory.com BlogIcon timesurfer 공간지배자 2017.11.24 15:37 신고 1. git push 원격저장소명 태그명
    2. git push 원격저장소명 로컬브랜치명 --tags

    둘중에 하나 사용해 주세요 ^^
    1번은 원격에 특정 Tag만 푸쉬,
    2번은 로컬에 모든 Tag 푸쉬
댓글쓰기 폼