logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

Git Commnd 사용법 정리

by digipine posted Nov 02, 2017
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

저장소 받아오기

 

로컬 저장소를 복제(clone)하려면 아래 명령을 실행하세요.

 

git clone /로컬/저장소/경로
 원격 서버의 저장소를 복제하려면 아래 명령을 실행하세요.
git clone 사용자명@호스트:/원격/저장소/경로

 

 

추가와 확정(commit)

 

변경된 파일은 아래 명령어로 (인덱스에) 추가할 수 있어요.

 

git add <파일 이름>
git add *

 

이것이 바로 git의 기본 작업 흐름에서 첫 단계에 해당돼요.
하지만 실제로 변경 내용을 확정하려면 아래 명령을 내려야 한답니다.


git commit -m "이번 확정본에 대한 설명"

 

자, 이제 변경된 파일이 HEAD에 반영됐어요.
하지만, 원격 저장소에는 아직 반영이 안 됐답니다. 

 


변경 내용 발행(push)하기

 

현재의 변경 내용은 아직 로컬 저장소의 HEAD 안에 머물고 있어요.
이제 이 변경 내용을 원격 서버로 올려봅시다. 아래 명령을 실행하세요.


git push origin master

 

 (다른 가지를 발행하려면 master를 원하는 가지 이름으로 바꿔주세요.)

만약 기존에 있던 원격 저장소를 복제한 것이 아니라면,
원격 서버의 주소를 git에게 알려줘야 해요.


git remote add origin <원격 서버 주소>

 

이제 변경 내용을 원격 서버로 발행할 수 있어요.

 

가지(branch)치기

 

가지는 안전하게 격리된 상태에서 무언가를 만들 때 사용해요.
여러분이 저장소를 새로 만들면 기본으로 master 가지가 만들어집니다.
이제 다른 가지를 이용해서 개발을 진행하고, 나중에 개발이 완료되면
master 가지로 돌아와 병합하면 돼요. 
가지치기 예제를 보여드리죠. 
아래 명령으로 "feature_x"라는 이름의 가지를 만들고 갈아탑니다.

 

git checkout -b feature_x

 

아래 명령으로 master 가지로 돌아올 수 있어요.

 

git checkout master

 

아래 명령으로는 가지를 삭제할 수 있어요.

 

git branch -d feature_x

 

여러분이 새로 만든 가지를 원격 저장소로 전송하기 전까지는
다른 사람들이 접근할 수 없어요.

 

git push origin <가지 이름> 

 

갱신과 병합(merge)

 

여러분의 로컬 저장소를 원격 저장소에 맞춰 갱신하려면
 아래 명령을 실행하세요.

 

git pull

 

이렇게 하면 원격 저장소의 변경 내용이 로컬 작업 디렉토리에
받아지고(fetch), 병합(merge)된답니다.
다른 가지에 있는 변경 내용을 현재 가지(예를 들면, master 가지)에
 병합하려면 아래 명령을 실행하세요.

 

git merge <가지 이름>

 

첫번째 명령이든 두번째 명령이든, git은
 자동으로 변경 내용을 병합하려고 시도해요.
문제는, 항상 성공하는 게 아니라 가끔
충돌(conflicts)이 일어나기도 한다는 거예요.
이렇게 충돌이 발생하면, git이 알려주는 파일의 충돌 부분을
 여러분이 직접 수정해서 병합이 가능하도록 해야 하죠.
충돌을 해결했다면, 아래 명령으로 git에게
 아까의 파일을 병합하라고 알려주세요.

 

git add <파일 이름>

 

변경 내용을 병합하기 전에, 어떻게 바뀌었는지 비교해볼 수도 있어요.

 

git diff <원래 가지> <비교 대상 가지> 

 

꼬리표(tag) 달기

 

소프트웨어의 새 버전을 발표할 때마다 꼬리표를 달아놓으면 좋아요.
 (물론 꼬리표는 SVN 등에 이미 존재하는 기능이지요.)
아래 명령을 실행하면 새로운 꼬리표인 1.0.0을 달 수 있어요.

 

git tag 1.0.0 1b2e1d63ff

 

위 명령에서 1b2e1d63ff 부분은 꼬리표가 가리킬 확정본 식별자입니다.
아래 명령으로 확정본 식별자를 얻을 수 있어요.

 

git log

 

확정본 식별자의 앞부분 일부만 입력해도 꼬리표를 붙일 수 있지만,
그 일부분이 반드시 고유하다는 조건이 필요해요. 

 

로컬 변경 내용 되돌리기

 

만약 여러분이 (물론 그럴 일은 없겠지만 ;) 실수로 무언가 잘못한 경우,
아래 명령으로 로컬의 변경 내용을 되돌릴 수 있어요.

 

git checkout -- <파일 이름>

 

위 명령은 로컬의 변경 내용을 변경 전 상태(HEAD)로 되돌려줘요.
다만, 이미 인덱스에 추가된 변경 내용과
 새로 생성한 파일은 그대로 남는답니다.

만약, 로컬에 있는 모든 변경 내용과 확정본을 포기하려면,
아래 명령으로 원격 저장소의 최신 이력을 가져오고,
로컬 master 가지가 저 이력을 가리키도록 할 수 있어요.

 

git fetch origin
git reset --hard origin/master 

 

 

유용한 힌트

 

git의 내장 GUI
gitk

 

콘솔에서 git output을 컬러로 출력하기
git config color.ui true

 

이력(log)에서 확정본 1개를 딱 한 줄로만 표시하기
git config format.pretty oneline

 

파일을 추가할 때 대화식으로 추가하기
git add -i 

TAG •

List of Articles
No. Subject Author Date Views
84 Certbot으로 무료 인증서 발급 받기 digipine 2020.09.03 528
83 MongoDB 설치 및 C 개발 도구 설정 1 digipine 2020.09.03 449
82 mongoose 3.8 싱글 파일 소스 코드 file digipine 2020.09.01 335
81 [iOS] Bluetooth로 App을 백그라운드 모드로 실행는 방법 lizard2019 2020.02.11 3524
80 How to Build FFMpeg for LAVFilters file lizard2019 2019.06.05 1449
79 How to FFMpeg Windows Build with msys 1.0 and MinGW_64 file lizard2019 2019.06.05 2209
78 C/C++ struct 패딩(padding) 원리 이해 lizard2019 2019.03.04 2150
77 gcc thread and mutex 사용법 lizard2019 2019.02.27 1200
76 윈도우즈 도스 커멘드(Command) 네트워크 관련 명령어 lizard2019 2019.02.07 1342
75 Ubuntu 우분투 설치 가이드 lizard2019 2019.01.29 781
74 Linux/OSX bash에서 source 명령어 lizard2019 2019.01.07 779
73 Xcode 없이 맥에 '명령어 라인 도구(Command Line Tools)'를 설치하는 방법 엉뚱도마뱀 2018.12.26 2859
72 언어 IDE 별로 git ignore 파일을 자동으로 만들어 주는 사이트 엉뚱도마뱀 2018.12.17 122617
71 [Swift, MacOS] 맥 한글 파일명이 윈도우에서 자소 분리되는 현상 해결, NFD, NFC 엉뚱도마뱀 2018.12.11 20080
70 수학적 구조물 모델링 만들기 소개 비디오 엉뚱도마뱀 2018.09.24 1051
69 Photoshop CC 2018 한글 영문 변환 언어팩, 포토샵 언어변경 file 엉뚱도마뱀 2018.07.04 8531
68 LibVLC 미디어 재생기 프로그래밍 방법 C++, QT 엉뚱도마뱀 2018.04.20 2504
67 select 와 epoll 엉뚱도마뱀 2017.12.11 828
66 비밀번호 해쉬에 Salt(소금) 첨가하기 file 엉뚱도마뱀 2017.11.23 4273
65 Linux /dev/random vs /dev/urandom 삽질 후기 엉뚱도마뱀 2017.11.22 957
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6