목록GIT (9)
yoongrammer

운영체제마다 에디터에서 새로운 줄 바꿈을 할 때 들어가는 문자열이 달라지게 됩니다. Windows 같은 경우는 carriage-return(\r)과 line feed(\n)가 같이 들어가는 반면에 MacOS에서는 line feed(\n)만 들어가게 됩니다. windows text\r\n mac text\n 이러한 차이점 때문에 git repository를 다양한 운영체제에서 쓰는 경우에 내가 수정하지 않았음에도 불구하고 줄 바꿈 문자가 달라져서 git history나 blame을 볼 때 문제가 있을 수 있습니다. 이것을 수정할 수 있는 속성이 autocrlf 설정입니다. 자신의 운영체제에 맞게 autocrlf를 설정해 줍니다. Windows $ git config --global core.autocrlf..

목차git 디버깅 하기 (blame, bisect)Git에는 버전 관리 기능 말고도 디버깅용 명령어도 있습니다. 누가 버그를 만들었는지 언제 어디서 생겼는지 찾아내는 데 도움이 됩니다.git bramegit blame은 파일의 각 라인을 누가 마지막으로 수정했는지 보여줍니다.$ git blame -L 옵션을 사용하여 전체 파일이 아닌 원하는 라인 범위를 정할 수 있습니다.$ git blame -L 3,10 main.go^608a065 (yoongrammer 2020-11-21 12:02:45 +0900 3) import "fmt"^608a065 (yoongrammer 2020-11-21 12:02:45 +0900 4)af64134b (Tom 2020-11-21 12:06:08 +0900..

목차git rebase와 cherry-pick 알아보기히스토리를 한 줄로 관리하기 위해 Merge 보다 Rebase 나 Cherry-Pick을 사용하는 경우가 많습니다.이번에는 Rebase 와 Cherry-Pick에 대해 알아보도록 하겠습니다.git rebaserebase는 브랜치의 공통 조상이 되는 base를 다른 브랜치의 커밋 지점으로 바꾸는 것입니다. 이해하기 쉽게 그림으로 설명하겠습니다.위 그림을 보면 master와 topic 브랜치의 공통조상인 base는 C1이라는 것을 볼 수 있습니다. 1. HEAD를 topic으로 옮기겠습니다.$ git checkout topic2. rebase 명령으로 topic의 base를 master가 가리키는 C4로 변경합니다.$ git rebase master실제로..

목차git remote 저장소리모트 저장소(remote repository)는 인터넷이나 네트워크 어딘가에 있는 저장소를 말합니다.리모트 저장소에서 파일을 공유할 수 있기 때문에 여러 사람들과 협업이 가능합니다. 로컬 저장소에서 리모트 저장소에 데이터를 업로드(push) 하거나 가져(pull) 올 수 있습니다. git remote 관련 명령어를 알아보도록 하겠습니다.리모트 저장소 확인하기 (git remote)git remote 명령으로 현재 프로젝트에 등록된 리모트 저장소를 확인할 수 있습니다.git clone으로 저장소를 clone 하면 origin이라는 리모트 저장소가 자동으로 등록됩니다.$ git clone https://github.com/schacon/ticgitCloning into 'tic..

목차git 브랜치(branch) 란? 브랜치는 커밋 개체(object) 사이를 가볍게 이동할 수 있는 포인터 같은 것입니다. 커밋을 하면 git 저장소에는 커밋 개체, 트리 개체, blob 이 저장됩니다. 커밋 개체는 아래 정보를 가지고 있습니다.커밋 메시지 같은 메타데이터이전 커밋에 대한 포인터 정보트리 개체를 가리키는 포인터 정보author, committer 정보트리 개체는 add 된 파일과 디렉터리 구조가 들어 있습니다. Blob은 git 저장소에 저장된 파일입니다. 파일 세 개를 add 하여 커밋을 하면 git 저장소에는 다섯 개의 데이터 개체가 생깁니다.(커밋 개체 하나, 트리 개체 하나, blob 세 개)$ git add README test.rb LICENSE$ git commit -m '..

목차git 되돌리기 (git commit 취소, git add 취소)작업한 내용을 되돌리는 방법에 대해서 알아보도록 하겠습니다. Git은 대부분 복구할 수 있지만 되돌린 것은 복구할 수 없으니 주의해야 합니다.commit 수정 하기git commit --amend 명령어로 커밋을 수정할 수 있습니다.$ git commit --amend이 명령어는 커밋 메시지를 잘못 적었거나 어떤 파일을 빼먹었을 때 등 커밋을 수정할 때 주로 사용합니다. 커밋을 했는데 빠트린 파일이 있다면 아래와 같이 수정할 수 있습니다.$ git commit -m 'commit'$ git add file$ git commit --amend여기서 실행한 명령어 3개는 모두 커밋 한 개로 기록되며 두 번 째 커밋은 첫 번째 커밋을 덮어쓰게..

목차 Git 저장소 만들기 Git 저장소 만드는 방법은 두 가지가 있습니다. 1. git init : 빈 git 저장소를 만들거나 기존 저장소를 다시 초기화하는 명령어입니다. $ mkdir my_project $ cd my_project $ git init 위 명령은 my_project를 git 저장소로 만드는 예제입니다. 2. git clone : 에 해당하는 저장소를 복제해 새 디렉터리로 가져오는 명령어입니다. $ git clone https://github.com/libgit2/libgit2 위 명령은 libgit2라는 디렉터리를 만들고 그 안에 https://github.com/libgit2/libgit2 에 있는 데이터를 모두 가져오는 예제입니다. 아래와 같은 명령을 사용하여 저장소를 Clone..

목차 Git 설치 OS별 Git 설치 방법에 대해서 알아보도록 하겠습니다. Linux Fedora, RHEL, CentOS에서 아래와 같이 dnf를 사용하여 설치합니다. $ sudo yum install git Ubuntu 등의 데비안 계열에서는 apt를 사용하여 설치합니다. $ sudo apt-get install git 설치가 되었는지 확인해 봅니다. $ git --version git version 2.22.0 version 정보가 출력되면 설치가 완료된 것입니다. MacOS 아래와 같이 brew를 사용해서 설치합니다. $ brew install git 설치가 되었는지 확인해 봅니다. $ git --version git version 2.22.0 version 정보가 출력되면 설치가 완료된 것입니다..

목차 Git 이란? Git이란 컴퓨터 파일의 변경사항을 추적하고 관리하는 분산형 버전 관리 시스템(DVCS, Distributed Version Control System) 입니다. Git 개념 Git은 파일을 아래 세 가지 상태로 관리합니다. Commited - 데이터가 로컬 데이터베이스에 저장된 상태 Modified - 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 상태 Staged - 수정한 파일을 곧 커밋할 것이라고 표시한 상태 이 세 가지 상태는 Git 프로젝트의 세 가지 단계와 연결돼 있습니다. Working 디렉터리(Working tree라고도 함)는 프로젝트의 특정 버전을 git 디렉터리에서 Checkout 한 것입니다. Checkout 하고 나서 수정한 파일은 Modified 상태..