우분투 git 설치 및 명령어 정리
IT/Ubuntu

우분투 git 설치 및 명령어 정리

반응형

git 기본 세팅

 

git 설치

 

git 버전 확인

 

사용자정보 입력 (자신의 github name과 email)

 

git 명령어 사용시 컬러로 바꿈 (옵션)

 

 

작업 폴더 생성

 

git 로컬저장소 생성

 

git 원격저장소 등록(프로젝트를 수행할 github 주소를 등록)

 

origin은 원격저장소(remote repository) URL을 참조하기 위한 대명사라고 생각하면 된다고함. 

다시 말해 아래의 github 주소를 참조하는 대명사를 origin으로 하여 다음부터 origin이라는 용어를 통해 github 원격저장소를 참조함.

 

 

remote에 origin이 잘 등록됐는지 확인

 

작업한 파일이나 폴더를 add한 후 status 확인

이 작업 공간에서 어떤 작업을 한 후에 그 폴더나 파일을 git에 알리는 과정. 

이 명령을 통해 git에 올라간다거나 하는 것은 아님. add를 한 후에 status를 확인해보면 stage상태인 것을 볼 수 있는데 git에는 아래 그림같은 과정이 있다. 좀 복잡해 보일 수 있다. 나도 아직 완벽히 이해한 게 아니다.

자세한 설명은 참고 : github자세한 설명 

 

 

 

 

stage상태인 폴더나 파일을 commit 명령어를 통해 로컬저장소로 commit

 

add와 commit이 정확히 어떻게 다른지 찾아봤는데( 참고 : add와 commit차이 )

 

git add : 수정된 파일을 나중에 commit될 큐에 추가한다. 아직 commit된 것은 아니다. 더 자세히 말해 git add명령은 git 인덱스에 add한 파일을 추가하고 커밋을 하기위한 staging area로 위치하게 한다.

 

git commit : add하거나 새롭게 만들어진 파일을 commit한다. ->이것은 git 인덱스에 있는 파일을 로컬저장소로 commit한다는 이야기 -> 다른 말로 로컬 저장소에 있는 현재 변경 사항을 커밋한다는 말.

 

이제 github에 올리려면 git push를 명령어를 이용하면 된다.

이렇게 -> git push origin master

 

하지만 master가 아닌 새로 브런치를 만들어봤다.

 

브런치 생성

git branch [브런치명] -> 브런치 새로 생성

git checkout [브런치명] -> git head가 가리키는 곳을 해당 브런치로 이동

 

git log --oneline --decorate -> 로그 확인(head가 새로 생성한 브런치를 가리키면 ok)

 

 

 

이제 git push origin [브런치명]을 입력하면

자신의 git name과 비밀번호를 입력하게 되고 github에 들어가보면 해당 브런치에 add한 폴더나 파일이 올라온 것을 볼 수 있다.

 

이번에 git을 처음 공부하는데 어렵다.. 시작이 반이라고 많이 해보다보면 완벽히 이해할 날이 오긋지 ㅎ 

 

 

 


 

 

git 명령어 정리

 

init - 작업 폴더 안에 새로운 git 저장소 생성

git init

 

clone

git clone [git주소]
특정 branch 클론


push - git 저장소에 업데이트

git push -u origin [master or 브런치명]

-u 옵션은 설정파일에 현재의 master 브랜치를 origin의(여기서는 fork받은 자신의 원격저장소) master 브랜치로 연결해 주어 다음부터는 자동으로 master브랜치에서 git push를 하면 origin의 master브랜치로 푸시가 되고 git pull을 하면 origin의 master를 fetch해서 로컬의 master로 merge하도록 설정하는 것이다. 라고 한다..

 

pull - git 저장소에 업데이트 된 내역을 로컬 저장소에 업데이트함

git pull origin [master or 브런치명]

-위의 명령어에서 fatal: refusing to merge unrelated histories 라는 오류가 날 경우

git pull origin [master or 브런치명]  --allow-unrelated-histories

위의 명렁어를 치면

->이런 오류가 나는데 여기서는 README파일을 병합하는 과정에서 충돌이 발생했다는 것을 알려준다. 해당 파일에 들어가서 충돌 발생 부분을 체크한 후 해당 라인들을 제거해준다.


add - 변경된 파일 혹은 추가할 파일을 Stage라는 인덱스에 추가

git add [파일or 폴더명]

-모든 파일 한번에 추가하려면

git add -A

 

status - stage의 상태 확인

git status

 

log head 확인  - 변경된 이력을 확인

(head는 commit을 가리키는 포인터)

git log

-현재 checkout된 브런치를 확인

git log --oneline --decorate

-가장 최근에 수행한 작업부터 순서대로 작업 History를 볼 수 있다.

git reflog

 

commint - 확정하는 단계 (-m을 이용해 설명을 적는게 좋음)

git commit -m "설명"

 

branch - 브런치 생성

git branch [브런치명]

-해당 브런치로 접속

git checkout [브런치명]

-브런치 생성과 동시에 head 이동

git checkout -b [브런치명]
git checkout master(마스터로 돌아감)

-브런치 삭제 (삭제된 브런치를 push를 통해 원격 저장소에 반영해야함.)

git branch -d [브런치명]
git push origin :[브런치명]

-브런치를 원격저장소에 등록

git push origin [브랜치명]

 

branch 클론하기

git clone -b [브런치이름] [git주소]

 

기존에 사용하던 remote 제거하기

git remote remove origin

 

작업 실행취소하기 - 가장 최상단에 있는 1개 작업 취소

git reset HEAD@{1}

-head로 부터 3개의 commit을 삭제

git reset --hard HEAD~3 (hard 옵션을 사용하지 않으면 수정사항은 그대로)

-모든 것

git reset HEAD *

 

원격 저장소에 밀어 넣고 덮어 쓴다

git push --force --set-upstream origin master

 

원격저장소에 잘못 push된 폴더 및 파일 삭제

//로컬 저장소에서는 삭제하지 않는다.      //로컬 저장소에서도 삭제한다.
git rm -r --cached [폴더 및 파일명]  <=> git rm -r [폴더 및 파일명]
git add .
git commit -m "remove mistake push"
git push origin master

 

반응형

'IT > Ubuntu' 카테고리의 다른 글

Samba를 이용해 우분투 폴더를 윈도우10에 공유  (0) 2018.05.20
vim 자주쓰는 단축키 모음  (0) 2018.05.20