본문 바로가기
헝클어진 알고리즘

git cli(command line interface)

by 배굿맨 2020. 9. 3.

git 설치

 

https://git-scm.com/

 

Git

 

git-scm.com

에서 프로그램 다운로드. 자신의 OS에 맞는 git 설치 파일을 다운로드 한 후 설치한다. (설치 방법 생략)

 

설치 후 WIN+R > cmd > git[enter]

후 화면에 git 사용법이 나타나면 정상 설치 된 것이다.

 

로칼 저장소(Repository) 생성

 

c:\git\python 디렉토리에 있는 파일들을 형상관리하고 싶다. 

 

cd c:\git\python[enter]

git init[enter]

 

하면 .git 파일이 현재 디렉토리에 생성된다. 즉, git은 .git 디렉토리 내부의 파일들을 참조해서 로칼 저장소내의 파일들의 형상을 관리한다.

 

버젼(Version)의 생성

 

현재 디렉토리에는 많은 파일 들이 있을 수 있다. 그러나, 내가 형상관리 하는 파일은 한 개 또는 복수 개 일 수 있다. 이럴 때 자신이 관리하고 싶은 파일을 git에게 알려준다.

 

git status[enter] //git으로 파일 상태 보기

git add filename[enter] //이력관리할 파일 stage로 올리기

git status[enter] //git으로 파일 상태 보기

 

위와 같은 명령은 'git add'가 'filename' 파일을 stage에 올렸다라고 한다. 경매장에 가면 경매사가 상품을 스테이지에 올려 놓는 것과 같다.

 

단, 유념할 것은 'git add filename' 파일은 스테이지에 올라간 것이지 버젼이 된 것은아니다.

 

버젼은 'git commit' 명령어로 만든다. 즉, 'commit'이 스테이지에 올라 온 관리대상 중 하나를 내 로칼 저장소(Repository)로 이동하면서 버젼을 생성하게 하는 명령어이다.

 

git status[enter] 

git commit -m "이번 버젼에 대한 간략한 설명"[enter] //버젼을 만들었다.

git status[enter]

git log[enter] //이번 버젼을 만드는데 들어간 기록들

 

즉, 'git commit' 하기 위해서는 파일을 먼저 stage에 올려 두어야 한다. 스테이지에 없는 경매 상품을 경매할 수 는 없다. 경매의 결과 낙찰가가 결정되듯이 commit의 결과 버젼이 결정된다.

 

정리해보자.

  • git init
  • git status : 현재 디렉토리의 깃 정보
  • git add : 특정 파일을 스테이지로 이동
  • git commit : 특정 파일의 버젼을 생성
  • git log : 저장소의 버젼 정보를 출력. 변경이력 정보를 보여준다.

그리고 심화 명령서를 아래에 써 놓았는데 일단은 다음 단계인 원격 저장소 생성으로 넘어가길 추천한다. 

 

  • git diff : 버젼간의 차이점을 보여줌
  • git log -p : 버전간의 변경 이력을 보여줌
  • git checkout commit_id : commit_id 버젼을 변경, working tree라고 불리는 현재 디렉토리의 파일에 대한 변경이 뒤따름
  • git checkout main : 최신 버전으로 변경, working tree라고 불리는 현재 디렉토리의 파일에 대한 변경이 뒤따름.
  • git reset --hard commit_id : commit_id 버젼이 최신 버젼이라고 선언. --soft 옵션은 working directory내의 git 정보는 유지하나 --hard 옵션은 모두 삭제한다고 본다.
  • git revert commit_id : commit_id를 이전 버젼으로 되돌리고 새로운 버젼을 생성한다. 버젼을 삭제하지는 않는다.

원격 저장소 생성

아래 사이트에서 회원 가입하고 저장소를 하나 만든다.

 

github.com

 

저장소를 하나 만든다. 옵션으로 README.md 파일을 만들어 놓으라고 하는데 본인은 만들어 놓지 않는다. 먼저 만들어 놓았더니 push할 때 충돌나서 한 참 헤맸다. (물론 잘 몰라서 헤맸을 거지만...)

 

아래 화면이 보이면 화면 설명을 읽어본다.

 

Quick setup
if you've done this kind of thing before ... 
(패스워드를 물어보면 쳐주고 안물어보면 넘어간다. 깃허브에 계정을 만들고 계정에 로그인하는 것을 로컬에서 한 번이라도 수행했다면 위 과정은 필요없는 것으로 보인다.)

or create new repository on the command line
내 로칼디렉토리를 깃허브에 연동하려면 아래단계로 간다.

echo "#caio" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/my_git.git
git push -u origin main

or push an existing repository from the command line
저장소가 이미 있어서 이 저장소를 깃허브에 연동하려고 한다.

git remote add origin https://github.com/my_git.git
git branch -M main
git push -u origin main

 

위와같은 설명을 볼 수 있다.

 

가장 쉬운 

or create new repository on the command line 추천

 

echo "#caio" >> README.md

깃허브에서 README.md 파일을 먼저 만들지 않코 로칼에서 만든 후 전송한다. 깃허브에서 만들어 놓으면 로칼과 원격지의 파일들이 충돌해서 git push에서 에러 메시지를 보게될 것이다.

 

git init

현재 디렉토리에 형상관리를 시작하겠다고 선언하는것이다.

 

git add README.md

스테이지에 올린다.

 

git commit -m "first commit"

스테이지에 올라간 것을 커밋한다. 커밋의 의미는 버젼을 만든다이다.

 

git branch -M main

원격지에 파일을 전송할 때 사용되는 브랜치의 이름이 main이다.

 

git remote add origin https://github.com/my_git.git

들어논 저장소에 들어가면 링크를 복사할 수 있다. 이 링크의 이름은  "https://github.com/your_nick_name/your_repo_name.git"이라 가정한다.

 

 

git push -u origin main

커밋된 파일을 원격지로 복사한다.

 

2020년 10월 부터 master branch가 main으로 바뀌었다고 한다. 그래서 위와 같이 main으로 바꾸어 주어야 한다.

(이걸 몰라서 한 참 헤맸다... ㅠㅠ)

 

참조. 아래는 git 환경변수 설정명령어 이다. 언제 설정하는지는 가물가물하다...
git config --global user.name "your nick name"
git config --global user.email "your email"

 

GitHub에서 내가 올린 파일을 확인해 보자.

 

그리고 이것에 추가하여 협업(하나의 프로젝트에 여러명의 소프트웨어 개발자가 공동으로 작업하는 것)에 대한 정보는 https://opentutorials.org/ 사이트에서 찾을 수 있다.

 

'헝클어진 알고리즘' 카테고리의 다른 글

음수의 보수표현  (2) 2021.09.08
정보처리기사 최종 합격  (0) 2020.09.04
요구사항 확인하기  (0) 2020.06.23
XP(eXtreme Programming)  (0) 2020.05.12
2. 스크럼(Scrum) 기법  (0) 2020.05.11