xtring.dev

[Git] 왜 Git? Git Command는 뭐가 있을까? - Git 이해하기 본문

for Dev./Git | Github

[Git] 왜 Git? Git Command는 뭐가 있을까? - Git 이해하기

xtring 2020. 7. 4. 21:02

Git, Github, branch 자주 사용하는 커맨드 정리

Git, Github, branch 자주 사용하는 커맨드 정리 : 네이버 블로그
13 Git Commands Every Developer Should Know

Git을 처음 알게 되면 '버전관리가 왜 필요하지?', '너무 복잡해...'와 같은 생각을 하시는 분들이 많을 거에요. 저도 마찬가지로 Git을 처음 사용하기 시작했을 때는 정확히 어떻게 사용하고 왜 사용해야하는지 몰랐어요. 오히려 프로젝트를 진행하는데 관리차원에서 복잡해서 힘들다는 생각을 했었죠. 그땐 너무 모르고 있었죠...⭐️

Git을 사용했을 때 장점은 코드에 대한 히스토리를 남겨 버전을 관리하고 다수의 인원이 협업하는 코드를 관리할 수 있게 해줍니다. 또 Github에서 자신의 코드를 공유할 수도 있죠. 이외에도 Github의 다양한 기능이 있습니다. 너무 쫄지마세요! 조금만 익숙해지고 개발자들 간의 협업에 대한 고민을 해보면 '이건 무적권 써야하는 것이구나! Git 너무 좋다😭' 라는 생각이 드는 동시에 '왜 지금까지 안 썼을까...'라는 생각을 하게 될거에요 😁

이 글에서는 자주 사용하는 Git 명령어 13가지를 공유하고 이외에 알면 좋은 명령어를 알려드립니다!

git init

$ git init

이 명령어는 보통 새로운 프로젝트에서(해당 프로젝트를) git을 사용하기 위해 initialization하는 것 입니다. 명령어를 실행하면 해당 디렉터리는 Git repository(저장소)가 됩니다. 그리고 보이지는 않지만 .git라는 디렉터리가 생성됩니다. 이제 이 .git이라는 것이 당신의 프로젝트의 버전 관리를 할 수 있도록 해줄거에요.

  • 혹시나 이미 git init(초기화)되어 있는 프로젝트에 다시 실행한다면 이미 되어있는 git 세팅을 override하지 않습니다. 😄

git clone

$ git clone <https://url-of-the-repository>

당신이 어떤 Repository를 clone하고 싶다면, 저장하고 싶은 위치에서 해당 명령어만 실행하면 됩니다. 다운로드 받아지는 버전은 origin의 연결됩니다. git clone를 통해서 기존에 진행되고 있던 프로젝트에 바로 참여하고 코드를 수정하고 push 할 수 있습니다.

git branch

branch는 Git의 가장 중요한 기능 중 하나입니다. 간단하게 설명하자면 한팀(다수)이 같은 코드를 병렬형태로 개별적인 작업을 이어갈 수 있습니다. 또한 이것을 통해 Git Workflows을 할 수 있으며 그것들을 더 효과적으로 만들어낼 수 있습니다.

새 branch를 만드는 방법

$ git branch <branch-name>

이 명령러를 실행하면 당신의 local만 새로운 브랜치를 생성하는 것입니다. 만약 당신이 origin(원격 위치)에도 브랜치를 만들고 싶다면

git push -u <remote> <branch-name>

하면 됩니다.

모든 branch 조회하기

$ git branch

# or

$ git branch --list

# 확인 후 탈출을 위해서는 `q`를 입력합니다.

branch 제거하기

$ git branch -d <branch-name>

git checkout

branch를 만들었다면 해당 브랜치로 이도애서 작업을 해야겠죠. 이번엔 브랜치를 옮기는(checkout) 방법입니다.

$ git checkout <branch-name>

그러나 현재 브랜치에서 다른 브랜치로 전환할 때는 다음 두가지를 엄두해야합니다.

  • 현재 브랜치의 일부 변경사항을 커밋하고 origin(원격)으로 push해야 합니다.
  • 전환하려는 브랜치가 local에 존재해야만 합니다. 그렇지 않은 경우 git pull을 해주세요.

아래 명령어는 브랜치를 생성하는 동시에 해당 브랜치로 옮기는(checkout) 방법입니다.

$ git checkout -b <branch-name>

작성중...

Git

git init : 현재 디렉토리를 Git이 관리하는 프로젝트 디렉토리(= working directory)로 설정하고 그 안에 레포지토리(.git 디렉토리) 생성

git config user.name 'codeit' : 현재 사용자의 아이디를 'codeit'으로 설정

git config user.email 'teacher@codeit.kr' : 현재 사용자의 이메일 주소를 'teacher@codeit.kr'으로 설정

git add [파일 이름] : 수정사항이 있는 특정 파일을 staging area에 올리기

git add . 시 모든 파일을 선택

git add [디렉토리명] : 해당 디렉토리 내에서 수정사항이 있는 모든 파일들을 staging area에 올리기

git reaet [파일 이름] : staging area에 올렸던 파이 다시 내리기

git status : Git이 현재 인식하고 있는 프로젝트 관련 내용들 출력(문제 상황이 발생했을 때 현재 상태를 파악하기 위해 활용하면 좋음)

git commit -m "message" : 현재 staging area에 있는 것을 Commit으로 등록("message" : 메시지 내용)

git help [커맨드 이름] : 사용법이 궁금한 Git command 의 공식 메뉴얼 내용 출력

Github

git push -u origin master : Local repository의 내용을 처음으로 Remote repository에 올릴 때 사용

git push : Local repository의 내용을 Remote repository로 올리기(보내기)

git pull : Remote repository의 내용을 Local repository로 끌어오기(받아오기)

git clone [프로젝트의 Github repo 주소].git : Github에 있는 프로젝트를 내 컴퓨터로 가져오기

Commit 다루기

git log : Commit history 출력

git log --pretty=oneline : --pretty 옵션을 사용하면 Commit history를 다양한 방식으로 출력할 수 있음. --pretty 옵션에 oneline 값을 부여하면 Commit 하나 당 한 줄씩 출력. (Git - pretty-formats Documentation 참고)

git show [커밋 아이디] : 특정 Commit에서 변경사항을 출력

git commit --amend : 최신 Commit을 다시 수정해서 새로운 Commit으로 만듦

git config alias.[별명] [커맨드] : 길이가 긴 Command에 [별명]을 붙여서 이후로 별명으로 해당 Command를 실행할 수 있도록 설정

git diff [커밋 A 아이디] [커밋 B 아이디] : 두 Commit 간의 차이 비교

git reset [옵션] [커밋 아이디] : 등록한 Commit을 되돌림. 옵션에 따라 하는 작업이 달라짐(옵션 생략 시 --mixed 옵션이 적용)

(1) --soft : HEAD가 특정 Commit을 가리키도록 이동
(2) --mixed : staging area도 특정 Commit 처럼 리셋
(3) --hard : working directory도 특정 Commit처럼 리셋

이때 Commit 아이디 대신 HEAD의 위치를 기준으로 한 표기법(ex: HEAD^, HEAD-3)을 사용할 수 있음

git tag [태그 이름] [커밋 아이디] : 특정 Commit에 태그를 붙임

branch

git branch [새 브랜치 이름] : 새로운 branch 생성

git checkout -b [새 브랜치 이름] : 새로운 branch를 생성하고 해당 branch로 checkout(= 해당 branch로 이동)

git branch -d [기존 브랜치 이름] : branch 삭제

git checkout [기존 브랜치 이름] : 해당 branch로 이동

git merge [기존 브랜치 이름] : 현재 branch와 [기존 브랜치]와 merge

git merge --abort : merge를 하다가 conflict가 발생했을 때, 일단은 merge를 취소하고 이전 상태로 돌아감

반응형
Comments