아래 글을 읽을 때 참고할것!
> 은 콘솔창을 뜻하는 것으로 별의미 없는 것!
버전관리시스템
대표적인 것
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가지로 구성되어있음.