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 파일만 남은 것을 확인 할 수 있다.







'@C언어 : Layer7' 카테고리의 다른 글

PLT,GOT와 동적 라이브러리  (0) 2018.10.23
HackerSchool FTZ 풀이  (0) 2018.06.15
너의 타자소리가 들려  (0) 2018.05.23
구조체 예제  (0) 2018.05.15
구조체  (0) 2018.05.13

+ Recent posts