본문 바로가기

개인공부

GIT 시작하기(버전관리의 본질)

반응형
pwd
pwd
디렉토리생성
mkdir gitfth
git 생성
git init
git 정보 검색
git init
모든 상태정보 검색
ls -al

 

 

이제 텍스트파일을 만들어 보자

 

vim 이라는 형식으로 f1.txt를 만든다.
vim f1.txt

 

이때 화면에 입력이 되지 않는데 알파벳 "i"를 눌러서 입력상태로 바꾸고 입력을하자.

입력이 끝나면 esc를 눌러서 insert모드를 해제한다.

 

저장과 동시에 종료하기
:wq

 

vim을 이용해서 말고 그냥 저장되어있는 정보를 보는 방법
cat f1.txt

 

버전관리를 위해서 필요한것중 하나는 status가 있다.

 

status를 사용해보면

 

프로젝트 폴더의 상태를 확인한다.
git status

그러면 unstracked라는 메세지를 볼 수 있는데 추적되어 있지 않다라는 상태를 확인한다.

 

Untracked 상태의 파일들은 내가 git에게 관리해라는 명령어를 주기전까지는 이파일 관리를 무시한다.

 

이때 관리해라고 하는 명령어가

 

버전 관리 추가
git add f1.txt

 

그럼 위와같이 add를 통해서 git이 파일을 관리를 하기 시작한다.(추적하라)

 

이러한 기능이 필요한 이유는 우리가 프로젝트를 하다보면은 프로젝트의 핵심적인 파일이 있고

 

그 프로젝트를 개발하거나 할때 임시적으로 필요한 파일이 있다. 하지만 그중에 임시로 필요한 파일은 버전관리를 하면안된다. 따라서 배제하기 위해서 즉 명확하게 깃에게 알려주기 위해 필요한 기능이다.(하지만 정확한게 최고다)

 

 

버전 만들기(commit)

버전이란? 

: 어떤 작업의 완결된 상태 메이플스토리.1.27 , 메이플스토리.1.43 버전... 등등

 

 

지금 내가 만든 버전이 누가만든것이라고 알려주는것이 필요하다.

 

redbin이라는 작성자가 만듭니다.
git config -- global user.name redbin
이메일도 등록을 한다.
git config --global user.email wjdals0471@naver.com

 

내가 만든 버전은 이름과 이메일을 포함하고 있으므로 다른사람이 확인 할수 있다.

(한번만 하면된다.)

 

등록한 파일을 commit 한다.
git commit

그럼 아래와 같이 vim 에디터가 실행된다.

#은 참고용 내용이다. status의 명령어의 내용과 똑같다.

 

저위에는 commit 메세지를 입력한다 (버전의 메세지) 작성할려면 i를 누른다.

 

1버전이라고 명시해주고 :wq 로 종료한다.

 

 

아래의 메세지가 뜬다면 commit에 성공했다는 것이다.

git의 log 상태를 보여준다.
git log

1이라는 commit 상태메세지를 등록한 것을 활용 할 수 있다.

 

이제 f1.txt를 변경해보겠다. 

 

modified

그후 status를 확인한다면 빨간색으로 아래와 같이뜬다.. (이것은 파일이 변경되었다는 것을 의미한다.)

 

이상태에서 commit하면 안되고 modified 변경된 파일을 add를 통해서 등록해준다!

 

git add f1.txt

status로 확인한다면 아래와 같이 된다!

즉 최초로 생성하거나 수정하거나 할때 add를해준다.

 

그리고 commit을 사용하여 등록한다.(버전 2라는 의미를 commit 메세지로 등록한다.)

그럼 버전 1과 버전 2의 로그들을 확인 할 수 있다.

 

 

제일 중요한것.. 지금 하는게 제일중요 하다(버전을 생성하는 방법)

copy 명령어를 사용해보자 f1.txt랑 똑같은 내용을 f2.txt라는 파일로 생성
cp f1.txt f2.txt

 

f1, f2 txt를 모두 수정해보자!

 

git staus로 확인을 하면 아래와같이 두개의 파일이 변경되었다.

 

여기서 git add를 통해서 modified 된 파일을 등록한다..

 

근데 왜 git은 commit을 바로하면되지 git add를 통해서 일일이 등록해야하는가??

 

생각해보면 당연하다. 작업하다보면 commit을 하면 안되는 파일도 있을 것이기 때문이다.

(commit 하나는 하나의 작업을 담고 있는 것이 제일 이상적이다.)

 

많은 작업들을 담은 거대한 버전을 만들어야 할때가있다.(commit의 시기를 놓쳤을 때)

 

 

git f1.txt만 했을 경우 다음과 같이 된다.

 

 

즉 add를 한 파일만이 commit이 된다. 이 상태로 commit을 하면 f1.txt만 버전에 들어 가게된다.

 

status를 해보면 f2.txt는 아직 변경된 상황으로 status상태로 남아있다.

git은 add라는 절차로 내가 작업한 파일만 commit을 할것들만 추려서 선택적으로 commit을 할 수 있다.

 

git add f1.txt

 

이러한 commit 대기 상태인 파일 들을 stage area ==> stage - repository(저장소) 라고 한다.

 

 

 

git diff 이전 버전과의 차이를 확인 하자

git log + 명령어로 상세한 log 확인가능

 

차이점이 무엇인가 알아보는 방법
git log -p

초록색으로는 추가된 내용

빨간색은 제거된 내용

 

버전 사이의 차이점을 가르쳐준다. ( 추가 되거나 제거된 내용들)

 

log1 과 log2 의 소스사이의 차이점을 출력한다.
git diff (고유로그1)..(고유로그2)

 

그냥 git diff 를 통해서 내가한 작업에대해서 차이점을 가르켜준다.

git diff

commit을 하기전에 마지막으로 확인할 수 있는 방법

diff는 코밋하기전에 현재소스와 차이점을 말해준다.

 

과거의 버전으로 돌아가보자

돌아가는 방법에는 몇가지가 있다. 

 

reset VS revert 두개는 비슷하고 다르다.

http://www.popit.kr/

 

Popit | 전문 지식 공유를 위한 팀블로그

전문 지식 공유를 위한 팀블로그

www.popit.kr

git reset을 한다면  a라는 지점으로 돌아가는건지 a라는 지점도 지우는 건지 그것이 중요하다..

 

5 4 3 2 1 깃 버전이 잇다면 3으로 돌아가기 위해서는

 

git reset

git reset VERSION --hard

명령어를 통해서 version으로 돌아간다 이때 git reset version3 --hard

 git reset 212fbade82d45da49826c05b91f962aa32e43384 --hard

 

-- hard를 왜부칠까 ?? reset이 필요할때는 simple하게 hard를 쓰면된다. ( soft 등 다른기능도 있음)

 

git revert

코밋을 reset처럼 날려버리는 것이 아니라 커밋을 취소하면서 새로운 버전을 생성하는 것이다.

 

 

명령의 빈도와 메뉴얼 보는 방법

 

<< 혼자서 깃을 공부하는 3가지 >>

1. git의 메뉴얼을 통해서 필요한 기능이 있는지 찾아본다.
2. git관련 커뮤니티에서 내가 필요한 기능에 대해서 상세하게 질문한다.
3. 인터넷 검색을 통해서 내가 필요한 기능들에 대해서 찾아보고 사용한다.

 

git 사용 빈도수

command google results %
commit 528,000 7.981980075
push 523,000 7.906393143
pull 506,000 7.649397572
clone 489,000 7.392402002
checkout 470,000 7.105171658
add 446,000 6.742354382
branch 439,000 6.636532676
log 388,000 5.865545964
diff 369,000 5.578315621
fetch 355,000 5.36667221
merge 354,000 5.351554823
init 343,000 5.185263572
status 286,000 4.323572541
reset 267,000 4.036342197
tag 246,000 3.718877081
rebase 203,000 3.068829461
rm 142,000 2.146668884
show 104,000 1.572208197
bisect 62,800 0.9493718726
grep 49,400 0.7467988934
mv 44,700 0.6757471768

 

 

파일이 실행될 때마다 add하고 commit하고 귀찮지 않나???

 

이거 두개를 하나로 하는 방법은.. 메뉴얼에 push라는게 있다.!!

 

commit에 관한 명령어들을 확인 할 수 있다.
git commit --help

 

git commit하는 바로 add 까지 하겠다

git commit -a

 

git commit하고 add하고 vim 메세지까지 같이하겠다.

git commit -am "11"

 

 

반응형

'개인공부' 카테고리의 다른 글

JSTL  (0) 2020.04.23
web공부  (0) 2020.04.21
HTML 태그 정보  (0) 2020.03.10
HTML 기본  (0) 2020.03.10
HTML5 개념  (0) 2020.03.09