본문 바로가기

git 명령어 정리

by Recstasy 2019. 10. 29.

::레포지터리 만들기

https://www.gitignore.io/에서 gitignore파일을 자동으로 생성해보자. 레포지터리를 생성한뒤, github의 clone/down을 클릭하면 복사할 수 있는 레포지터리 주소가 나온다. 해당 주소에서 github.com 뒷부분을 복사한 뒤 gitbash에서 아래 사항을 진행해보자.

먼저, github의 레포지터리를 git에 추가하는 방법은 다음과 같다.


>> git clone git@github.com:레포지터리 복사부분


이후, git폴더에서 폴더와 파일을 추가하고, 해당 폴더로 이동후 스테이지 한다.


>>git add 파일명

>>git commit -m "메시지"


>>git add => 스테이지

>>git commit => 붙이기



::push

git push 를 실행하고, 비밀번호를 넣어주면 github의 레포지터리에 추가 파일과 폴더가 연결된다.



::git 명령어

1) 폴더추가

gitbash에서 git폴더를 추가하는 명령어는 'mkdir [폴더명]'이다.


2) 레포지토리 초기화

레포지토리 초기화를 진행할 폴더로 가서 git init 명령어를 실행한다. 


3)git log : commit확인

git log명령어는 레포지터리의 commit된 로그를 확인할 수 있다. commit이후, 상태를 확인하는 용도로 자주 사용된다. 선택한 파일이나 폴더의 로그만 출력하고 싶다면, git log README.md와 같이 입력한다.


4) 파일의 변경된 내용을 출력하는 명령어


>> git log -p


5) 변경내역 확인


>> git diff 


'git diff'명령어는 working tree, 스테이지 영역, 최신 commit 사이의 변경을 확인할 때 사용한다. git commit명령어를 실행하기 전에 git diff HEAD명령어를 실행하는 습관을 길러두자. 이렇게 하면 현재 commit과 이전 commit의 차이를 한눈에 확인할 수 있다. HEAD는 현재 작업하고 있는 브랜치의 최신 commit을 참조하는 포인터다. 



::브랜치

브랜치는 각각의 작업을 병행할 때 사용한다. master브렌치는 Git에서 기본적으로 생성되는 브랜치다. 한 번에 여러 가지 작업을 수행할 때는 각각의 작업에 따라서 브랜치를 나눠준다. branch를 잘 활용하면 동시에 여러 사람들과 함께 효율적으로 개발을 진행할 수 있다. 


1)브랜치 보기

>>git branch 


2)브랜치 생성

master브랜치 상태에서 새로운 브랜치를 작성하고, 변경할 때는 'git checkout -b' 명령어를 사용한다. 


3)브랜치 변경

브랜치를 변경하는 방법은 git checkout '브랜치이름'을 타이핑하면 된다. 


github에 공개된 코드는 대부분 master브랜치다. 브랜치 종류는 크게 통합 브랜치와 토픽 브랜치로 구성되는데, master브랜치는 통합브랜치로 사용된다. 주로 특정 기능은 토픽 브랜치로 개발하고, 이를 마스터에서 합치는 방식이다. feature-A브랜치를 모두 구현했다면, 이를 master브랜치와 합칠 수 있다. 이때 사용하는 명령어가 'merge'다. 


4) merge사용

먼저 master브랜치로 checkout한다. 


>>$ git checkout master


이후 --no-ff 명령어를 사용하여, 브랜치 기록을 자동으로 남기면서 동시에 merge한다.


>>$ git merge --no-ff feature-A


위의 명령어를 실행하고나면 브랜치에 master브랜치에는 feature-A 브랜치의 내용이 merge된다.

  


::돌아가기

1] $ git checkout -b fix-B    ==> 브랜치 fix-B 생성

2] README.md 내용 수정하기

3] $ git add README.md

4] $ git commit -m "message"

5] $ git reflog 


git reflog를 입력하면 해시가 나타난다. 그리고 돌아가고 싶은 해시를 선택한 뒤에 아래 명령어를 입력하면 해당 상황으로 돌아간다.


>>$ git reset --hard  



::원격 레포지터리 연결

로컬에서 작업한 Git을 원격 github와 연결하려면 Initialize this repository with a README에 체크할 필요가 없다.



::원격 레포지터리 등록

Github에 작성된 레포지터리 경로는 git@github.com:사용자이름/hello-world 이다. 이를 로컬 레포지터리의 원격으로 등록할 때는 git remote add명령어를 사용한다.



::git push, 원격 레포지터리 전송

Git의 master브랜치에서 원격으로 github에 전송해보자. 


>>$ git push -u origin master


위의 명령어를 실행하면 origin 원격 레포지터리의 master 브랜치에 현재 브랜치의 내용이 전송된다. -u옵션을 입력하면 로컬 레포지터리에 있는 현재 브랜치의 upstream이 origin레포지터리의 master브랜치로 설정된다. 이 옵션을 사용하면 git pull 명령어를 실행할 때 추가적인 옵션을 입력하지 않아도 로컬 레포지터리의 브랜치를 origin레포지터리의 master브랜치에서 받아올 수 있다.



::브랜치를 원격으로 전송하기

원격 레포지터리에도 master브랜치 이외의 브랜치를 작성할 수 있다. 이번에는 feature-D 브랜치를 작성하고, Github원격 레포지터리에 같은 이름으로 push해보자.


1] $ git checkout -b feature-D

2] git push -u origin feature-D 



::원격 레포지터리에서 가져오기

다른 개발자가 되었다고 가정하고 별도의 폴더로 옮겨서 로컬 레포지터리를 만든 뒤, 원격 레포지터리의 데이터를 가져오자.


*git clone : 원격 레포지터리 가져오기

지금까지 작업했던 로컬 레포지터리가 아닌, 다른 폴더에서 GitHub레포지터리를 clone해보자. 


>>$ git clone git@github.com:webdoli/hello-world.git


위의 명령어를 실행하면, 현 상태의 master 브랜치가 복사된다. 그리고 원격 레포지터리를 쉽게 참조할 수 있도록 origin 브랜치도 자동으로 설정된다. 원격 브랜치 상태를 확인하려면, git branch -a 명령어로 확인가능하다. 



이 외에도 명령어가 많지만 대략적으로 위의 명령어와 규칙을 활용하면 기본적인 작업은 가능하다. 추가적인 git명령어는 작업하면서 숙지하는 편이 좋을 듯하다.

댓글

최신글 전체

이미지
제목
글쓴이
등록일