Dev/Git

[Git] command line 버전관리

창문닦이 2019. 2. 16. 02:52

명령어로 git을 사용하는 것은 복잡하지만, gui를 사용하지 않고 진행 가능하다. 또한 더욱 다양한 기능이 존재한다.

gitbash : 명령어를 통해 깃을 제어하는 프로그램 (실행하면 콘솔창이 뜸). 설치 후 'git' 을 치면 성공적으로 설치가 됐을 경우 깃 관련 정보가 조회된다.

ls -al

git init : 저장소 초기화 

git : git repository

cd .. 부모디렉토리 조회

.git 이라는 디렉토리를 지우면 버전정보가 기록된 것이 모두 사라진다. (삭제하지 않도록 유의)



Working tree : 수정한 전체 파일들.

Staging Area : 버전이 만들어져야 할때 변경된 파일 10개중 2개만 저장하고 싶을 때 이 곳에 올려둔다.

Repository(저장소) : 버전이 저장 되어지는 곳.


cat 파일명 : 해당파일의정보를 보여주는 명령어

git status 깃의 상태 조회 : untracked files / Changes not staged for commit / Changes to be committed

git add 파일명 : working tree의 수정사항을 staging area에 올리라는 명령어 

git commit -m "Message 1" 

git log : show version


Git은 모든 파일을 자동으로 tracked 하지 않음. 사용자가 직접 설정을 해줘야한다.

버전관리 되고 있건 아니건 Staging area에 올리기 위해서는 add 작업을 해줘야 한다.

git log --stat


버전간의 차이점 비교하는 명령어

git diff : show changes

git reset --hard : 마지막 버전에서 이전 상태로 돌리는 명령어

git log -p : 커밋시 어떤 파일에, 어떤 데이터가 추가/삭제 되었는지 조회 


git log를 통해 커밋시점의 해쉬코드를 참조.

git checkout 해쉬코드 : 해당 커밋 시점으로 되돌리라는 명령어. 하지만 이후 커밋이 지워진 것은 아니다.

git checkout master : master 브랜치가 있는 시점으로 커밋이 되돌아감.


git add src. src폴더 밑에 있는 파일을 한꺼번에 staging에 올림 (untracked file인 상태에서는 자동으로 add되지 않음)

git commit -m "message" : -m이라는 명령어는 커밋메시지를 콘솔창을 통해서 직접 입력하겠다를 의미

git config --global core.editor "에디터경로" 실행하고싶은  디폴트의 깃에디터 설정하는 명령어

Reset

git log --hard 커밋해쉬코드 : 이 버전으로 리셋하겠다. 내가 수정하고 있던것도 삭제. 가장 강력하게 진행.

도움말이 필요하면 git reset --help

다른 사람과 협업하는 중이라면 reset을 사용하게 되면 엉키는 문제가 발생할 수 있으므로 reset을 쓰지않는 게 좋다.

Revert

기존의 커밋은 그대로 두되, 상태를 되돌리기 한 것

되돌리고 싶은 커밋시점 C4- C3- C2- C1

git revert C4로 작성할 경우 C4를 되돌리기하여 C3의 상태로 변환을 시켜준 것.

반드시 역순으로 순서대로 진행을 해야 충돌이 나지 않는다. 


# 생활코딩 git 강의 참조 : https://www.opentutorials.org/course/3839