Machineboy空

Git&GitHub 입문 : 1장 Git 시작하기 본문

Computer/개념

Git&GitHub 입문 : 1장 Git 시작하기

안녕도라 2024. 7. 15. 21:17

2005년 리누스 토르발스(Linus Torvalds), 리눅스 창시자이기도 한 그가 지옥같은 작업환경에서 벗어나기 위해 만든 시스템이 바로 깃입니다. 리눅스를 만드는 개발자들은 깃을 통해 리눅스의 수많은 소스 코드를 효율적으로 관리하기 시작했습니다. 그리고 오늘날에는 리눅스뿐만 아니라 수많은 소프트웨어의 소스 코드가 깃을 통해서 관리되고 있습니다.

 

  • 버전 관리(Version Control)
    • 문서를 수정할 때마다 언제 수정했는지, 어떤 것을 변경했는지 편하고 구체적으로 기록하기 위한 버전 관리 시스템
  • 백업(Backup)
    • 백업은 현재 컴퓨터에 있는 자료를 다른 컴퓨터에 복제하는 것입니다. 외장 하드 디스크나 USB 디스크 등 별도의 저장 장치를 마련해서 백업할 수도 있고, 드롭박스(Dropbox)나 구글 드라이브(Google Drive)같은 인터넷 서비스를 사용하기도 합니다.
    • 백업 공간을 제공하는 인터넷 서비스 중에는 깃 파일을 위한 것도 여럿 있고, 이를 깃의 원격 저장소 또는 온라인 저장소라고 합니다. 이러한 서비스 중 가장 많이 쓰이는 것이 바로 깃허브(GitHub)입니다.
  • 협업(Collaboration)
    • 깃허브와 같은 온라인 서비스를 사용하면 여러 사람이 함께 일할 수 있다는 강력한 장점이 생깁니다. 팀원들이 파일을 편하게 주고 받으면서 일할 수 있고, 누가 어느 부분을 어떻게 수정했는지 기록에 남기 때문에 나중에 오류가 생겼을때도 파악하기 쉽습니다.
    • 만일 두 사람이 같은 파일을 수정하면 어떻게 될까? 두 사람이 같은 파일의 같은 행을 수정하면 어떻게 될까? 깃은 협업 과정에서 일어날 수 있는 여러 문제를 중간에서 정리해주는 기능도 가지고 있습니다.

세 가지 기능은 순서대로 배워야 한다.

 

자동차는 제품군이고, 그 제품군 안에 A라는 자동차, B라는 자동차 등 셀 수 없이 다양한 자동차들이 있습니다. 마찬가지로 깃도 구체적인 제품이라기보다는 제품군이라고 할 수 있습니다, 세상에는 여러 가지의 깃 프로그램이 존재하기 때문입니다. 깃 프로그램은 깃을 좀 더 편리하게 사용할 수 있도록 해주며, 깃 클라이언트 프로그램이라고도 합니다.

  • 깃 (클라이언트) 프로그램 https://git-scm.com/downloads/guis  
    • 깃허브 데스크톱(GitHub Desktop)
    • 토더스깃(TortoiseGit)
    • 소스트리(SourceTree)
    • 커맨드라인 인터페이스(Command Line Interface, CLI)
      • 터미널 창에 직접 명령을 입력해 깃을 사용하는 방식으로, 기본적인 리눅스 명령이나 깃 명령도 외워야 하기 때문에 다른 것 보다 어렵다
      • 하지만 반복해야할 일을 자동화 시키거나 서버 환경에서 깃을 사용하는 등 다양한 활용도 가능해진다. 그래서 개발자 대부분 CLI로 깃을 사용한다.

 


현재 디렉터리 살펴보기

~ : 현재 홈 디렉터리에 있다.

$ pwd : print working direcotry : 현재 위치의 경로

$ ls : list : 현재 디렉터리에 어떤 파일이나 디렉터리가 있는지 확인할 때

$ ls -la : -붙이고 option 표시

 

-a 숨김 파일과 디렉터리도 함께 표시합니다.
-l 파일이나 디렉터리의 상세 정보를 함께 표시합니다.
-r 파일의 정렬 순서를 거꾸로 표시합니다.
-t 파일 작성 시간 순으로 (내림차순) 표시합니다.

터미널 창에서 디렉터리 이동하기

$ cd.. : change directory : 현재 위치에서 상위 디렉터리로 이동

$ cd Users : 하위 디렉터리로 이동할 때는 하위 디렉터리의 이름을 입력

$ cd ~ : 처음에 출발했던 디렉터리 홈 디렉터리로 돌아갈때
~ 현재 접속중인 사용자의 홈 디렉터리
./ 현재 사용자가 작업중인 디렉터리
../ 현재 디렉터리의 상위 디렉터리

터미널 창에서 디렉터리 만들기 및 삭제하기

$ cd Documents
$ mkdir test : make directory

$ rm -r test : remove

빔에서 텍스트 문서 만들기

  • 리눅스의 기본 편집기 빔(Vim)은 터미널에서 사용할 수 있는 대표적인 편집기이다.
  • 빔은 터미널 창에서 키보드 입력만으로 사용하기 때문에 윈도우에서 사용하던 일반 편집기와 사용법이 다르다.
// vim 명령은 뒤에 입력한 파일 이름과 같은 파일이 없다면 그 이름으로 새로운 텍스트 문서를 만들고,
// 파일이 있다면 그 파일을 연다.

$ vim test.txt
:w 또는 :write 편집 중이던 문서를 저장한다.
:q 또는 :quit 편집기를 종료한다.
:wq 편집 중이던 문서를 저장하고 종료한다. 파일 이름을 함께 입력하면 그 이름으로 저장한다.
:q! 문서를 저장하지 않고 편집기를 종료한다. 확장자가 .swp인 임시 파일이 생긴다.

 

//깃에서 기본 편집기 변경하기

$ git config --global core.editor "notepad++"

텍스트 문서 내용 확인하기

$ cat test.txt : concatenate(연쇄하다)
$ cat 파일 파일의 내용을 화면에 표시한다.
$ cat 파일1, 파일2 ... 파일n > 새 파일 파일 n개를 차례로 연결해서 새로운 파일을 만듭니다.
$ cat 파일1 >> 파일2 파일 1의 내용을 파일 2 끝에 연결한다.

 


꼭 기억해야 할 명령어

cd~ change directory 홈 디렉터리로 이동한다.
mkdir mine   새 디렉터리 mine을 만든다.
cd mine change directory mine 디렉터리로 이동한다.
cd.. change directory 부모 디렉터리로 이동한다.
pwd print working directory 현재 경로를 보여준다.
ls list 디렉터리의 내용을 보여준다.
ls -l list 옵션을 사용해 디렉터리의 폴더 상세 정보까지 보여준다.
ls -a list 옵션을 사용해 디렉터리의 숨김 파일과 디렉터리까지 보여준다.
rm -r mine remove 하위 디렉터리 mine을 삭제한다.
vim f1.txt   빔을 사용해 f1.txt 파일을 작성한다.
cat f1.txt concatenate(연쇄하다) f1.txt 파일의 내용을 터미널 창에 보여준다.
clear   터미널 창의 내용을 지운다.
exit    터미널 창을 종료한다.