Git 이란?
VCS(version Control System)로 버전 관리 시스템이다.
Git을 쓰는 이유
1. 여러 개발자들과 같이 작업을 할때 코드를 유용하게 공유 할 수 있다.
2. 변경된 내용이나 오류를 업데이트 하거나 수정하기 쉽다.
3. 변경된 내용이 왜 변경되었는지 기록이 가능하다.
Branch 란?
브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념이다.
각각의 독립적인 브랜치는 다른 브랜치의 영향을 받지 않기 때문에 여러 작업을 동시에 진행할 수 있다.
이런 브랜치들이 다른 브랜치들과 병합함으로써 모든 작업내용을 갖고있는 하나의 브랜치로도 만들 수 있다.
Git 사용법>
<git에 올릴 파일 생성 & git에 파일 올리기>
poodoong@layer7:~$ git init : git을 사용할 수 있도록 초기화
Initialized empty Git repository in /home/poodoong/.git/
poodoong@layer7:~$ ls -al : 모든 파일 보기
total 44
drwxr-xr-x 5 poodoong poodoong 4096 6월 7 23:31 .
drwxr-xr-x 44 root root 4096 6월 7 21:32 ..
-rw------- 1 poodoong poodoong 313 6월 5 23:07 .bash_history
-rw-r--r-- 1 poodoong poodoong 220 6월 4 19:27 .bash_logout
-rw-r--r-- 1 poodoong poodoong 3771 6월 4 19:27 .bashrc
drwx------ 2 poodoong poodoong 4096 6월 4 19:29 .cache
drwxrwxr-x 7 poodoong poodoong 4096 6월 7 23:31 .git
-rw-r--r-- 1 poodoong poodoong 2181 6월 4 19:27 .kshrc
-rw-r--r-- 1 poodoong poodoong 655 6월 4 19:27 .profile
-rw------- 1 poodoong poodoong 940 6월 5 20:46 .viminfo
drwxrwxr-x 3 poodoong poodoong 4096 6월 5 20:46 test
poodoong@layer7:~$ ls : 모든 디렉토리 보기
test
poodoong@layer7:~/test$ vim README.c : test디렉토리에 README라는 c언어 파일 만들기
poodoong@layer7:~/test$ gcc -o README README.c : 컴파일 돌리기(만약 아무 에러가 없다면 아무것도 출력되지 않음)
poodoong@layer7:~/test$ git config --global user.email "kimwhayoung0115@naver.com" : git 사용자 설정
poodoong@layer7:~/test$ git config --global user.name "Glume.f"
poodoong@layer7:~/test$ git add * : 파일 추가하기
poodoong@layer7:~/test$ git commit -m "Initial Commit" : 기록 저장(분기점 생성)
[master (root-commit) 5875b2a] Initial Commit
5 files changed, 12 insertions(+)
create mode 100755 README
create mode 100644 README.c
create mode 100644 README.md
create mode 100644 Yogroot.c
create mode 100755 mainaa
poodoong@layer7:~/test$ git push origin master --force : 서버에 올리기(--force는 강제로 덮어쓰기)
Username for 'https://github.com': kimwhayoung0115@naver.com
Password for 'https://kimwhayoung0115@naver.com@github.com':
<git에 올린 파일 지우기>
poodoong@layer7:~/test$ ls -l : 현재 test 디렉토리에 있는 파일 모두 출력
total 36
-rwxrwxr-x 1 poodoong poodoong 8608 6월 7 23:40 README
-rw-rw-r-- 1 poodoong poodoong 72 6월 7 23:39 README.c
-rw-rw-r-- 1 poodoong poodoong 13 6월 4 19:36 README.md
-rw-rw-r-- 1 poodoong poodoong 71 6월 5 20:46 Yogroot.c
-rwxrwxr-x 1 poodoong poodoong 8608 6월 5 20:46 mainaa
poodoong@layer7:~/test$ rm mainaa : mainaa 삭제
poodoong@layer7:~/test$ git add mainaa : mainaa을 삭제했다는 것을 git한테 직접 알림
poodoong@layer7:~/test$ rm README README.md Yogroot.c : 필요 없는 것들을 더 삭제해 본다
poodoong@layer7:~/test$ git add * : (오류) add * 은 현재 존재하는 파일만 git 기록에 추가하기 때문에 삭제된 디렉토리의 정보를 올리려면 git add -A를 써야한다. mainaa를 삭제하고 add *를 썼음에도 불구하고 잘 삭제되었던 이유는 우리가 git한테 직접 삭제사실을 알렸기 때문
poodoong@layer7:~/test$ git commit -m "remove file" : 파일 삭제 이유를 알리고 기록에 추가
[master 266939b] remove file
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100755 mainaa
poodoong@layer7:~/test$ git add -A : 이 명령어는 모든 파일의 변경된 이력을 기록에 추가
poodoong@layer7:~/test$ git commit -m "remove file"
[master e1d1253] remove file
3 files changed, 6 deletions(-)
delete mode 100755 README
delete mode 100644 README.md
delete mode 100644 Yogroot.c
poodoong@layer7:~/test$ git push origin master : 서버에 올리기
Username for 'https://github.com': kimwhayoung0115@naver.com
Password for 'https://kimwhayoung0115@naver.com@github.com':
삭제하지 않은 README.c 파일만 남은 것을 확인 할 수 있다.