CLI와 Git(Version control system)

나연·2020년 4월 5일
0

Programming Foundation

목록 보기
1/7
post-thumbnail

CLI(Command Line interface)

우리가 흔히 컴퓨터의 마우스로 여러번 클릭해야 이루어지는 과정들을 명령어 몇줄로 한번에 처리할 수 있는 ClI 는 GUI(Graphic User Interface)와 반대되는 개념이다. 빠르고 강력하며 접근성이 훨씬 좋다. 우리가 컴퓨터로 다루는 작업 중에는 그래픽 화면이 아닌 것도 있기 때문에 CLI 처리방식은 더욱이 필요하다. 이미 Linux,unix와 같은 nix계열은 서버 시장에서의 점유율이 매우 높다. 또한 open source이다.

주요 명령어

ls 파일보기, 폴더에 어떤 파일이 담겨있는지 확인가능
ls -al 디테일한 정보를 확인가능(접근권한여부, 링크된 파일 갯수, 소유자, 소유그룹, 파일크기, 만든날짜, 만든시간, 파일/디렉토리 이름)
cd 디렉토리로 이동
cd~ 홈 디렉토리 (현재 사용자의 개인화 파일들이 있는 디렉토리)
cd/ 루트 디렉토리 (시스템의 최상위 디렉토리)
cd. 현재 디렉토리
cd.. 부모 디렉토리 (상위폴더로 이동)
pwd 현재 디렉토리 확인
clear 작업창 전부 지우기
//
touch [file_name] 빈파일 생성
mkdir [newdir] 디렉토리(폴더)생성
mv [file_or_dir][target_dir] 파일 및 디렉토리 옮기기
mv [file_or_dir][new_name] 파일 및 디렉토리 이름 바꾸기
cat [file_name] 텍스트형태의 파일 확인
cp [file][target_dir] 파일복사
cp -r [folder] 폴더복사
//
rm [filename] 파일삭제 (조심해서 사용해야 한다.)
rm -r [dirname] 폴더삭제
//
sudo (Super User Do) 관리자 권한으로 실행 ➡ 관리자만 읽을 수 있는 파일 읽기
chown [ownder:group file] 파일의 소유권 변경
.code visual studio code 에디터로 실행하기


GIT

Version Control System (버전 관리하는 프로그램)

fork Remote repository에 있는거 내 계정으로 복사하는거 (공유하기)
clone 내 컴퓨터(local repository)로 가져오는거 (복사)

push 내 컴퓨터에 있던거 remote repo에 적용하는거
pull remote repo에(from origin) 있는 변경사항 내 컴퓨터에 적용하는거
메인테인(from upstream master)에 있는 변경사항 내 컴퓨터에 적용 (git fetch +gir merge)

git status 상태를 보는거
git commit local로 스냅샷 만드는거,세이브 포인트 지정 (다시 돌아갈 수 있는 저장 버전을 만드는거, git commit -m 반드시 변경사항 파악을 위해 메시지를 적어야한다. 이는 git log로 확인 가능하다)

staging area (working directory -> staging area -> repository)
git add
git commit

누군가와의 git을 이용한 협업 상황을 가정


  1. 상대와 나의 repo를 연결
    git remote add pair
    git remote -v //연결 된 목록을 보여줌

  1. 내가 작성한 코드를 local repo에 commit
    git add
    git commit -m 'change'

  1. 내 repo에 commit
    git push origin master(or other branch name) //내 repo에 push하는 것을 의미

  1. 상대가 작성한 코드 내 local repo로 가져옴
    git pull pair master(or other branch name) //수정한 상대의 원격 repo에서 내 repo로 pull하는 것을 의미

  • 가져온 것 수정하면 commit하고 push하면서 위의 과정을 반복
  • 🩹만약 같은 라인을 수정해서 상대와 충돌이 생긴다면 ? 쓸 부분만 add하고 commit하면 되지!

*repository 모든 작업 흐름을 포함하고 있는 것

branching 가지를 새로 쳐주는거 : 분리 된 작업 영역(사본), 사본이므로 각각의 branch는 독립되어있어 서로 영향을 주지 않는다.

📣branch는 현재 작업 공간을 베이스로 만들어짐!!!
-> 내가 현재 작업하는 branch를 항상 확인해야 한다.
-> 작업 공간을 옮기는 방법을 알아야 한다.
$ git checkout <branch 이름> (작업 공간을 옮기는 방법)

$ git checkout -b 기능1 (기능1 branch를 생성하고 그 branch로 작업공간 이동)

-> 원본을 베이스로 하는 다른 branch를 만들고 싶다면 ? 베이스로 하고 싶은 branch로 작업 공간 옮기고 branch를 생성

merging 가지를 합해주는거

profile
아름다운 상상을 실현하는 개발자입니다🌈🤍

0개의 댓글