일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- vscode
- github
- git
- npm
- styling
- REACT
- DevOps
- Android
- xtring.log
- GitLab
- viewcontroller
- react-native
- styled-components
- rn
- Xcode
- ios
- shortcut
- Docker
- Branch
- commit
- JavaScript
- ES6
- ReactNative
- React Native
- HTML
- npm install
- nextJS
- js
- Swift
- currying
- Today
- Total
xtring.dev
[Git] 왜 Git? Git Command는 뭐가 있을까? - Git 이해하기 본문
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를 취소하고 이전 상태로 돌아감
'for Dev. > Git | Github' 카테고리의 다른 글
[Git/Github] 중구난방 여러 개의 repo를 하나의 repo로 모아보자! (0) | 2021.01.15 |
---|---|
[Git] add와 commit을 동시에! (0) | 2021.01.10 |
[Git] 프로젝트에 자동으로 생성된 .gitignore가 뭘까? - .gitignore (0) | 2020.07.16 |
[Git] GitLab에서 GitHub로 commit log를 유지하여 Clone하기 (0) | 2020.07.15 |
[Git] Git을 시작해보자! - Git의 기본개념(Commit, Push, Pull, Branch) (0) | 2020.07.08 |