본문 바로가기
Others/Git

Centos에서 Git을 사용해보자

by supdev 2017. 4. 12.

아래 사이트를 참고하여 작성하였습니다. Git을 익히는데 많은 도움이 되었습니다.

https://backlogtool.com/git-guide/kr/


1. Git 설치 및 기본 사용법


- Git 설치
yum install git-core

- Git 초기 설정
git config --global user.name "사용자명"
git config --global user.email "메일주소"

설정 내역은 사용자 홈 폴더에 .gitconfig 파일에 저장된다고 합니다.
직접 파일 수정을 통해서도 변경할 수 있습니다.
(--global 옵션을 제거함으로써 git 저장소마다 다른 설정도 가능합니다.)

- 현재 디렉토리를 Git 저장소로 지정
현재 디렉토리를 Git 저장소로 지정합니다.
git init

- 상태 보기
현재 디렉토리의 파일 관리 상태를 볼 수 있습니다.
git status

Git에서 파일을 add를 통해 index에 추가, commit을 통해 저장소에 기록할 수 있습니다.


- 인덱스에 파일 추가
git add . 으로 모든 파일을 추가할 수 있습니다.
git add test.txt
git add .

- Commit을 통해 저장소에 기록
git commit -m "comment"

- 변경사항 확인
해당 git의 변경사항을 확인할 수 있습니다.
git log

2. 원격 저장소(GitHub)와 연동하기

- 원격 저장소와 연결
실행 옵션에서 한번 -u를 지정하면, 이후에는 그 브랜치명 지정을 생략할 수 있습니다.
단, 비어있는 원격 저장소에 최초로 push했을 때는 원격 저장소명과 브랜치명을 생략할 수 없습니다.
git remote add origin github_url

- 원격 저장소에 Push하기
push명령을 통해 원격 저장소에 수정 내용을 기록할 수 있습니다.
git push -u origin master

- 원격 저장소에서 복제해오기
원격 저장소에 있는 프로젝트를 지정된 이름의 폴더로 clone해옵니다.
git clone github_url directory_name

- Pull
복제한 프로젝트의 원격 저장소에서 파일이 수정된 경우 수정된 파일을 가져옵니다.
push 도중 파일 수정내역이 충돌 시 Pull하고 충돌 코드 수정 후 다시 푸시합니다.
git pull origin master

- 현재 깃의 변경 로그를 그래프를 통해 볼 수 있습니다.
git log --graph --oneline

커밋을 지정할 때, '~(틸드, 물결기호)'와 '^(캐럿, 삽입기호)'을 사용하여 현재 커밋으로부터 특정 커밋의 위치를 가리킬 수 있습니다.
이 때 자주 사용하는 것이 'HEAD' 로서, '~(틸드)'와 숫자를 'HEAD' 뒤에 붙여 몇 세대 앞의 커밋을 가리킬 수 있습니다.
'^(캐럿)'은, 브랜치 병합에서 원본이 여럿 있는 경우 몇 번째 원본인지를 지정할 수 있습니다.

성공적인 Git 가지치기 모델

3. Branch

- 새로운 Branch를 생성합니다.
git branch branch_name

- 해당 Branch에서 작업하기 위해 HEAD를 전환합니다.
git checkout branch_name

- checkout 명령에 -b 옵션을 넣으면 브랜치 작성과 체크아웃을 한꺼번에 실행할 수 있습니다.
git checkout -b branch_name


4. 병합(Merge)

1) fast-foward merge
2) non fast-foward merge

이 명령어에 병합할 커밋 이름을 넣어 실행하면, 지정한 커밋 내용이 'HEAD'가 가리키고 있는 브랜치에 넣어집니다.
'HEAD'는 현재 사용중인 브랜치에 위치하게 됩니다
git merge branch_name

- Branch 삭제
git branch -d branch_name

- 병합 취소(이전으로 돌림)
git reset --hard HEAD~

- rebase 병합
기존 merge 와는 달리 해당 브랜치에 병합 후 가장 앞으로 간다.
git rebase branch_name

- rebase 중 충돌 시 수정 후 병합 재개
git rebase --continue

- rebase 취소
git rebase --abort

rebase 후에는 master로 merge 진행


'Others > Git' 카테고리의 다른 글

git 접근 권한 에러 - remote: HTTP Basic: Access denied  (0) 2017.04.27