아래 글을 읽을 때 참고할것!

> 은 콘솔창을 뜻하는 것으로 별의미 없는 것!

버전관리시스템
대표적인 것
CVS, SVN, GIT


윈도우에 git 설치
위 사이트로 가서 설치파일다운
기본값, NEXT.....
설치가 완료됨

윈도우 -> 검색-> GITBASH가 나오면 설치가 완료된 것임.
GITBASH는 리눅스계통의 명령어가 윈도우 OS에서 사용가능할수 있게해줌.

> git
위 명령어를 치면 



명령어&실습1_git bash 사용
현재 위치경로
> pwd

경로로 이동
> cd 경로

폴더 생성
> mkdir 폴더명

git 명령어리스트보기
> git


명령어&실습2_git 초기설정, 명령입력
작업시작시 git에게 작업을 하겠다는 것을 알려주는 기능
.git폴더를 만듦. .git에 버전관리폴더,파일들이 저장됨.
git을 통해 관리되어질 프로젝트 workspace의 경로로 이동하여 설치할것!
> git init
ex) git_practice폴더아래 git 프로젝트관리를 시작함.
> cd C:/developGit/git_practice
> git init



파일 생성
만약 vim이 아니라 nano와 같은 에디터가 실행시 git config --global core.editor "vim"
> vim 파일명
ex) vim f1.txt

i를 누른후, 생성된 파일에 입력가능

esc                삽입모드에서 명령모드로 가기
i                    명령모드에서 삽입모드 가기
:w                방금적고, 수정한내용 저장
:q                나가기

폴더내역보기
> ls -al


파일내용 보기
> cat 파일명


git 프로젝트 폴더의 상태확인(변경내역에 대한 git의 추적상태를 알수 있음)
> git status


변경된 파일을 git이 추적하게 만듦.
> git add 파일명



버전을 만든 사람의 정보를 설정하기(이게 있어야, 다른 협업개발자도 작성자 정보를 알수 있음)
한번만 만들면됨.
> git config --global user.name "닉네임"
> git config --global user.email "이메일"


명령어&실습3_commit하기
이전에 작업한 내용을 commit해보기
> git commit

vim을 쳐서 보여지는 화면이 보임.
#~~~~~ 내용들은 무시해도됨.
1입력
esc 누르기
:wq
엔터

git 기록들을 볼수있음
> git log


f1.txt를 수정하기
> vim f1.txt

souce: 1을 2로수정
esc 누르기
:wq
엔터


> git status
수정된 파일이 추적확인되지 않았다고 나옮.


수정된 내용을 추적하라고 다시 명령
> git add f1.txt


다시 확인해보기
> git status




명령어&실습4_commit대기(staged)개념 알기


commit전에 변경된 파일들의 내용을 최종확인후, 아래의 명령어를 시켜둔것만 git commit하면 버전관리기록상 변경된것으로 기록이 됨.
"git add 파일"

> ls -al


f1.txt를 복사해서 f2.txt로 만들기
> cp f1.txt f2.txt


f2.txt만들어진것 확인
> ls -al


git 상태확인
> git status


변경된 파일을 추적하게 명령
> git add f2.txt


git 상태확인
> git status


add추적확인한 변경된 내역 git commit 하기
> git commit


commit 기록 볼수 있음
> git log





명령어&실습5_시점별 변경된 내용 확인
각각의 commit간의 차이점을 확인
> git log -p



commit 아이디를 활용하여, 해당 commit 시점이전의 git log를 볼수 있음
> git log fdf4d2deb87ae04a2fa1844339ecad7f920cfff8

commit 아이디2개간의 차이점보기
git diff 2d52dfcd844ac7fba20297932a4ed577a37231ea..d78b479b312306de7e146b0f88cc51b23c30a874


commit전 방금 전까지 작업했었던 내용들을 마지막으로 review하기 위해서 사용
> git diff



명령어&실습6_과거버전으로 돌아가기
commmit 아이디를 시점으로 그 이전 기록 없애기
> git reset d78b479b312306de7e146b0f88cc51b23c30a874
reset을 하게되면, 실제 commit기록은 사라진것은 아니지만, commit기록은 그 시점 이후로 사라지며, 그 시점으로 작업환경이 바뀜
공유한 이후에는 reset을 이용하지 말자!
reset은 로컬내에서만 작업할때 사용


해당 기록들이 사라졌고, 파일내용들이 바꼈음을 알수 있음.
> git log


해당 commit 아이디를 취소하고 새로운 버전으로 만듦.
> git revert  d78b479b312306de7e146b0f88cc51b23c30a874


명령어&실습7_도움명령어(메뉴얼 보기)
git 명령어
git --help
> git --help


특정 명령어
git 특정명령어 -help
> git commit -help

변경된 내용 commit(기본값)
> git commit -a

구글에서 git 명령어 관련 키워드별 검색 빈도수
mand
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



명령어&실습8_git의 원리
- git은 파일의 이름이 달라도, 파일의 내용이 같으면, 같은 오브젝트를 바라본다!
위 사이트에서 sha-1이용한 원리를 확인할 수 있음

아래의 폴더에, hi라는 값이 저장되게됨.
objects/c2/2b5f9178342609428d6f51b2c5af4c0bde6a42

objects 폴더아래의 object는 commit, tree, blob 3가지로 구성되어있음.



+ Recent posts