관리 메뉴

IT.FARMER

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

Auto Build(CI SCM GIT)/git

Git 기본 명령어 / Git tag, Merge

아이티.파머 2016. 7. 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 reset --soft HEAD^ : 최신의 바로 한단계 이전
git reset [commit name] : 해당 커밋 내용 취소
git reset --hard : 이전단계로 돌아간다. 

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

Revert : 


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 저장소, 스테이징, 작업트리의 차이점을 모두 확인

git diff --name-only {COMMIT_LOG_HASH}  
해당 커밋에 반영된 파일 목록만 확인 



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


4. 기존에 포함된 폴더 관리에서 제거 
git rm -r --cached [폴더명 or 파일명]
git commit -m -"관리 제거"
git push 



5. 강제 push 

git push <remote> <branch> --force

git push <remote> <branch> -f


git push -u --force origin master

git push -u -f origin master



안전하게 밀어 넣기 

강제로 --force-with-lease 안전하게 밀어 넣기

git push <remote> <branch> --force-with-lease



반응형

'Auto Build(CI SCM GIT) > git' 카테고리의 다른 글

git 명령어  (0) 2018.11.26
Git 빈폴더 추가 관리 하기 (git empty folder add)  (0) 2018.11.01
use github 소셜 프로그래밍?  (0) 2012.07.19