Ubuntu에서 Command Line, git, git-hub사용

nRecode·2020년 4월 1일
0

Git

목록 보기
1/3

<git과 git-hub를 사용하는 일이 많아질 것 같아 정리하는 포스트>

Command Line과 사용하는 이유

CLI는 Command Line Interface의 약자로 GUI(Graphic User Interface)와 달리 마우스와 각종 UI 컴포넌트 대신, 표준 입출력 시스템을 통한 입력과 그에 따른 결과를 출력하는 형태이다.

빠르고 강력하고(명령어 몇 줄로 작업할 수 있음)
접근성이 좋다는 장점이 있다.

Useful commands

  • 파일보기
    ls
    ls -al : 숨김파일 까지 보여줌

  • 디렉토리로 이동
    cd Downloads : Downloads로
    cd ~ : 홈디렉터리(현재 사용자의 개인화 파일들이 있는 디렉토리)
    cd / : 루트 디렉토리 (시스템의 최상위 디렉토리)
    cd. : 현재 디렉토리
    cd.. : 부모 디렉토리

  • 현재 디렉토리 확인
    pwd
    (full path가 확인된다.)

  • 파일명에 공백이 있을때 \사용 ex)My\ Document

  • 파일명을 치다가 tab을 누르면 자동완성이 된다.

git

git은 대중적이고 강력한 버전관리 시스템이다. git-hub는 git을 사용하는 플랫폼이다.

어떤 변경사항이 있는지 확인 가능하고 여러사람이 함께 작업할 경우에도 대응이 가능하기 때문에 협업시 이점을 가지고 있다.

버전관리를 하는 이유

프로그래밍을 할 때 파일 내용의 변경은 자주 발생한다. 이전의 내용들을 보존이 필요한데 이때 각각의 버전을 저장하면 백업으로 다시 되돌릴 수 있다.

Ubuntu에 git 설치하기

ubuntu의 터미널에서

$ sudo apt install git-all

명령문을 입력하면 git이 설치된다.

Reference Here git for ubuntu

특징

Staging Area

충돌을 해결하거나 선택적으로 버전관리를 받기위해 만들어짐

$git add 파일명 //staging area에 파일을 올린다. commit을 할 수 있는 상태가 된다.

$git commit -m 커밋메세지 //하나 하나의 스냅샷이라 이해할 수 있고 repository에 파일을 올린다.
  • commit메세지를 적는 이유:
    변경사항을 파악하고 다른사람과 효과적으로 작업하며 변동사항을 추적하는데 유용하다.

repository

repository 기록과 작업흐름을 모두 포함하는 소스코드를 저장하는 저장소

Branching and Merging

branching은 가지를 치는 것이고 merging은 가지를 다시 합치는 것을 의미한다.

  • master branch - 사용자에게 배포해야 할 프로그램의 소스코드
  • develop branch - 개발중인 버전의 소스코드
  • feature branch -하나하나의 기능이 들어있는 소스코드

brnach는 필요에 따라서 추가 할 수 있다.
위로갈수록 안정성이 높아져 버그가 줄어든다.

Distributed(분산 시스템)

  • fork - repository 하나를 통째로 가져와서 나의 계정으로 복사한다.(remote repository상에서 복사)
  • clone - 소스코드 수정을 위해 local repository로 가져오고 싶을 때 사용한다.
  • git push 대상 브랜치 이름 - remote repoditory에 적용을 시키고 싶을 때 사용하는 명령어
  • git pull origin master - remote repository에 변경된 사항을 내 컴퓨터에 저장하고 싶을 때 사용하는 명령어
  • git pull upstream master - 원본 repository에 변경된 사항을 내 컴퓨터에 저장하고 싶을 때 사용하는 명령어

git-hub에서 적용

  1. 내 계정으로 복사 fork
  2. 내 컴퓨터로 복사 clone
//url을 복사한 후 터미널에서
$git clone url붙여넣기
  1. 코드 수정
  2. add로 staging area에 파일을 올림
  3. commit으로 commit 메세지와 함께 local repository에 적용
  4. push origin master로 remote repository에 적용
  5. full request로 제출
profile
안정성, 확장성 있는 서버를 구축하고 가꾸는 개발자를 목표로 공부하고 있습니다. 🤔🤔🤔🤔 부족하기에 맞지 않는 내용이 있을 수 있습니다. 가감없이 피드백 해주시면 정말 감사하겠습니다..🙏

0개의 댓글