github 명령어에 대하여..

AeRi Lee·2020년 2월 5일
0

git clone /로컬/저장소/경로

->로컬 저장소를 복제clone 하려면
git clone /로컬/저장소/경로 명령 실행.

->원격 서버의 저장소를 복제하려면
git clone 사용자명@호스트:/원격/저장소/경로 명령 실행


새로운 저장소 만들기

폴더를 하나 만들고 git init 명령을 실행하면 새로운 git저장소가 만들어진다.


로컬 저장소에 git이 관리하는 세 그루의 나무

  1. 작업 디렉토리(working directory)
    -> 실제 파일들로 이루어져 있음

  2. 인덱스(index)
    ->준비 영역(staging area)의 역할

  3. HEAD
    ->최종 확정본(commit)


추가와 확정(commit)

파일의 내용을 변경했을 때 인덱스에 <추가>하는 방법
git add<파일 이름>
git add *

그리고 실제로 변경 내용을 <확정>하는 방법
git commit -m "이번 확정본에 대한 설명"
확정까지 하면 변경된 파일이 HEAD에 반영이 되었다.
아직, 원격 저장소에는 저장이 되지 않은 상태.


변경 내용 발행 또는 배포(push) 하기

현재 변경 내용은 아직 로컬 저장소의 HEAD안에 있다.
이 내용을 원격 서버로 올려보자.
git push origin master
*다른 가지를 발행하려면 master를 원하는 가지 이름으로 바꿔주자.

만약, 기존에 있던 원격 저장소를 복제한 것이 아니라면 원격 서버의 주소를 git에세 알려줘야 한다.
git remote add origin <원격 서버 주소>
이제 변경 내용을 원격 서버로 발행할 수 있다.


가치(branch)치기

가지는 안전하게 격리된 상태에서 무언가를 만들 때 사용한다.
우리가 저장소를 새로 만들면 기본으로 master가지가 만들어지고
다른 가지들을 이용해서 개발 진행을 한 뒤, 개발이 완료되면 master가지로 돌아와 병합(merge)하면 된다.

feature_x라는 이름의 가지를 만들고 갈아타기
git checkout -b feature_x
아래의 명령으로 Master 가지로 돌아올 수 있다.
git checkout master
아래 명령으로 가지를 삭제할 수 있다.
git branch -d feature_x
우리가 새로 만든 가지를 원격 저장소로 전송하기 전까지는 다른 사람들이 접근할 수 없다(배포하기 전 이므로)
git push origin <가지 이름>


갱신과 병합(merge)

로컬 저장소를 원격 저장소에 맞춰 갱신하고 싶다면
git pull 명령을 실행한다면 원격 저장소의 변경 내용이 로컬 작업 디렉토리에 받아지고(fetch), 병합(merge)된다.
다른 가지에 있는 변경 내용을 현재 가지(ex. master가지)에 병합하려면 git merge <가지 이름> 라는 명령을 실행하면 된다.
첫 번째 명령이든 두 번째 명령이든 git은 자동으로 변경 내용을 병합하려고 시도하려고 한다..

문제는, 가끔 충돌(conflicts)가 일어나기도 한다.
충돌이 발생하면, git이 알려주는 파일의 충돌 부분을 우리가 직접 수정해서 병합이 가능하도록 해야 한다.
충돌을 해결했다면, 아래 명령으로 git에게 아까의 파일을 병합하라고 알려줘야 한다.
git add <파일 이름>
변경 내용을 병합하기 전에, 어떻게 바뀌었는 지 비교해 볼 수도 있다.
git diff <원래 가지> <비교 대상 가지>


꼬리표(tag) 달기

소프트웨어의 새 버전을 발표할 때마다 꼬리표를 달아놓으면 좋다.
아래 명령을 실행하면 새로운 꼬리표인 1.0.0을 달 수 있다.
git tag 1.0.0 1b2e1d63ff

이 명령에서 1b2e1d63ff 부분은 꼬리표가 가리킬 확정본 식별자 이다.
git log 명령으로 확정본 식별자를 얻을 수 있다.

확정본 식별자의 앞부분 일부만 입력해도 꼬리표를 붙일 수 있지만, 그 일부분이 반드시 고유한다는 조건이 필요하다.


로컬 변경 내용 되돌리기

실수로 무언가 잘못한 경우
아래 명령으로 로컬의 변경 내용을 되돌릴 수 있다.
git checkout -- <파일 이름>
이 명령은 변경 전 상태(HEAD)로 되돌려진다.
다만, 추가된 변경 내용과 새로 생성한 파일은 그대로 남는다....

만약, 로컬에 있는 모든 변경 내용과 확정본을 포기하려면, 아래 명령으로 원격 저장소의 최신 이력을 가져오고, 로컬 master 가지가 저 이력을 가리키도록 할 수 있다.
git fetch origin
git reset --hard origin/master


유용한 팁

git의 내장 GUI
gitk
콘솔에서 git output을 컬러로 출력하기
git config color.ui true
이력(log)에서 확정본 1개를 딱 한 줄로만 표시하기
git config formar.pretty oneline
파일을 추가할 때 대화식으로 추가하기
git add -i


Fetch
-> remote 저장소에 있는 모든 데이터를 로컬로 가져옴.

Git branch [브랜치명]
-> 새로운 브랜치 생성

Git checkout [브랜치명]
-> 브랜치 checkout(다른 브랜치로 이동)

Git commit =>

———> 한줄로 git checkout -b newData


Git local branch 생성 , branch 이동

생성
git branch [브랜치명]

생성 후 이동
git checkout -b feature-01

Git remote branch 생성
git push origin feature-01

branch local remote 연동
git branch --set-upstream-to origin/feature-01


git remote -v
->git remote가 바로 원격 저장소를 관리할 수 있는 명령어 이다.

git remote add origin https://github.com/[이름]/gitExample로 origin이라는 이름으로 원격 저장소 주소를 등록한다. 이제부터 origin이라는 이름을 사용하면 방금 전에 우리가 만든 저장소에 접속할 수 있다. (origin대신 다른 이름으로 해도 된다.)

origin지우기

만약 origin이라는 원격 저장소를 지우고 싶다면 git remote remove origin하면 된다.

git add remote...

기존 워킹 디렉토리에 새 리모트 저장소를 쉽게 추가할 수 있는데 git remote add <단축이름> <url> 명령을 사용한다.


cd

cd 명령어는 "change directory"의 약자로 특정 디렉토리로 이동할때 사용된다. cd 명령어 다음에 가고자 하는 디렉토리 경로를 입력하면 된다.

원하는 파일을 git repo에서 삭제

git rm


원하는 파일 rename/ gir repo상에서 이동시킬 때

git mv


profile
👩🏻‍💻 Junior Web Frontend Developer

0개의 댓글