TIL 19 | Git Basics

meow·2020년 8월 6일
0

Git

목록 보기
1/4

이번 TIL 은 유튜브 얄팍한 코딩사전님의 '가장 쉬운 Git 강좌 - (상) 혼자작업편' 을 바탕으로 작성되었습니다. (URL : https://www.youtube.com/watch?v=FXDjmsiv8fI)

1. Git을 사용하는 이유

뭔가를 만들고 프로젝트를 진행할때 특정 폴더에서 파일을 수정한다. 이에 관해 시간여행이 가능한 평행우주를 만들어둔다고 생각하면 된다. 모든 파일의 저장 상태를 과거로 돌려놓거나, 과거의 특정 내용을 현재로 가져올 수 있다. 메인 작업에서는 위험한 시도를 해보거나 할때 폴더를 복사할 필요없이 여러 버전의 우주를 만들어 넘나들 수 있다고 생각하면 된다.

2. Git 사용법

일반적으로 CLI(Command Line Interface)에서 작업한다.

0) 컴퓨터에 깔려있어야 하는 것

  • Git
  • IDE
  • Sourcetree (Git interface)

1) 환경 만들기

ctrl + ~ : IDE에서 터미널을 여는 단축키

git init : 폴더가 git의 관리 하에 들어간다.

git config --global user.name “(내 이름)”
git config —global user.email “(내 메일 주소)”
: 이름과 이메일 등록

shift + command + . : 숨긴파일 보기

2) 현재 시점을 저장하기

git status : 아직 저장되지 않은 파일을 확인한다.
git add -A : 모든 파일을 추가한다.
다시 git status 확인시 ‘묻을 것들’ 이 나열된다.
git commit -m “설명” : 파일을 묻는다. ex) git commit -m “First Commit”
다시 git status : 다 담아서 묻을게 없다고 나온다.

새로운 파일을 Sourcetree에서 추가해보기. 체크하고 설명쓰고 Commit 버튼 클릭.

파일을 수정하거나 삭제, 새로 생성해도 변경된 사실을 타임캡슐에 묻어둘 수 있다.

git log 로 캡슐의 정보들과 이력을 확인할 수 있다. Sourcetree에서는 History 탭에서 보다 깔끔하게 확인이 가능하다.

터미널에서 맨 아래에 기존의 입력줄이 뜨지 않고 글자도 안쳐진다면 vi 에디터가 실행중인 상황이니 :q를 타이핑 해서 빠져나오면 된다.

3-1) 과거로 돌아가기 - Reset

과거로 돌아가는 방법에는 과감한 방법과 신중한 방법이 있다. Reset은 과감한 방법이다.
git log에서 나온 결과물 중 일련번호 앞 6자리를 복사하고 git reset [ 일련번호 6자리 ] -- hard 를 입력하면 된다.

Sourcetree 에서는 History에서 원하는 시점에서 우클릭 후 Reset master to this commit 을 클릭하면 된다.

3-2) 과거로 돌아가기 - Revert

미래에 한발을 걸치고 과거로 가는 방법이다. git revert [일련번호 6자리]를 엔터하면, 새 커밋 메세지를 작성하는 화면이 뜬다. 그대로 저장하겠다는 vi 명령어 :wq을 입력한다.

Sourcetree에서는 역시 우클릭 - reverse commit

4) 평행우주 넘나들기 - Branch

새로운 시도는 해보고 싶은데 회사 파일로 실험을 할 수는 없을때 나만의 평행우주를 만들 수 있다. 현재 시점에서 두 미래로 분기하는 방법이다.

git branch my-idea 나의 가지를 만드는 방법. master 파일과 분기된다.
git checkout my-idea 나의 가지로 넘어가는 방법. 역시 기존 파일로 넘어가기 위해서는 git checkout master 해주면 된다.

Sourcetree에서는 브랜치에서 탭하는 것 만으로 우주를 변경할 수 있다. Sourcetree에서 Branch를 탭, 또 다른 브랜치를 생성할 수 있다. 체크아웃까지 한번에 가능하다.

5-1) 다른 우주에서 가져오기 - Merge

git merge my-another-idea(변화를 가져올 branch 이름) : master branch에 my-another-idea branch를 병합한다. Mac에서는 저장하고 나가기 :wq 를 입력한다.

git log --graph --all --decorate 시각화된 두 분기의 작업내역을 볼 수 있다.

  • 같은 파일의 같은 라인에 손을 대고 나서 merge를 하는 경우에는 conflict가 된다.

  • 둘중의 하나의 내용을 수정한 다음에는 git add로 캡슐에 넣고 git commit까지만 쳐준다. 병합하는 것이라고 이미 메시지가 완료되어있고 :wq로 저장해주면 merge가 완료 된다.

  • 협업할때는 되도록 다른 브랜치들이 같은 파일을 수정하는 것을 삼가하도록 해야한다.

5-2) 다른 우주에서 가져오기 - Rebase

git rebase my-another-idea 분기들을 깔끔하게 한줄로 합친다.
git branch -D (브랜치명) : 다 쓴 브랜치를 삭제할 때 사용한다.

profile
🌙`、、`ヽ`ヽ`、、ヽヽ、`、ヽ`ヽ`ヽヽ` ヽ`、`ヽ`、ヽ``、ヽ`ヽ`、ヽヽ`ヽ、ヽ `ヽ、ヽヽ`ヽ`、``ヽ`ヽ、ヽ、ヽ`ヽ`ヽ 、ヽ`ヽ`ヽ、ヽ、ヽ`ヽ`ヽ 、ヽ、ヽ、ヽ``、ヽ`、ヽヽ 🚶‍♀ ヽ``ヽ``、ヽ`、

0개의 댓글