[코드스테이츠] S1.Unit4 회고

JinYoung Choi·2022년 12월 22일
0
post-thumbnail

오늘은 깃에 대해서 배웠다!
학교에서 프로젝트를 할때 깃을 써본적이 있는데 깃 배쉬로 다뤄 본 것이 아닌
깃허브 데스크탑으로 간편하게 사용 했었다, 그래서 명령어에 대해 아는 것이 하나도 없었다.
진도를 진행하는데 깃 배쉬에서 could not find UI helper 'Github.UI' 에러가 떠서 순간 뇌정지가 왔다, 구글링을 해보니 최신 버전에서 나오는 오류라 다운그레이드를 하라고 나왔다. 다운그레이드를 하니 말끔히 해결 돼서 뿌듯했다. 그나저나 하루에 한번씩 오류를 마주하니 지긋지긋하다.

페어프로그래밍도 처음 해봤다. 페어분께서 전공자셔서 그런지 엄청 잘 알고계셨고, 덕분에 헷갈리는 부분에 대해서 많이 배워 갈 수 있었다. 페어분과 이러한 얘기 저러한 얘기도 나눴다. 부트캠프 진행하면서 처음 말을 해본 사람이라 그런지 많이 의지가 됐다.

Git

Linux OS를 만든 리누스 토르발즈가 만든 파일을 관리해주는 프로그램

  • 파일의 변경 사항을 추적하며, 사용자가 각 파일의 버전을 관리할 수 있게 도와준다
  • 파일을 백업할 수 있게 해준다.
  • 협업자들과 함께 파일을 공유하고, 각자의 작업물을 취합할 수 있게 해준다.

Git의 영역

  • 온라인 : Remote repository(원격 저장소)
  • 로컬 : Work space(작업 공간), Staging area(스테이징 영역), Local repository(지역 저장소)

Git으로 파일 관리를 시작하기(Git 초기화) : git init

  • git init을 입력하면 git init을 입력한 위치의 모든 파일들이 Git의 관리를 받게 된다.

브랜치 이름 변경하기

  • 기본으로 생성되는 브랜치 이름 변경 : git config --global init.defaultBranch 변경할 브랜치 이름
  • 현재 위치하는 브랜치 이름 변경 : git branch -m 변경할 브랜치 이름

.git 디렉토리

  • git init을 입력하면 디렉토리 내에 .git 디렉토리가 생성
  • Git은 파일을 관리할 때 필요한 모든 정보들을 .git 디렉토리에 보관된다. 따라서, .git 디렉토리를 실수로 삭제하면 Git 명령어가 제대로 동작하지 않게 되는다, 그래서 .git 디렉토리는 감춰진 상태로 존재하도록 설계되어져 있다.

Work space

  • Work space는 Git의 세 가지 영역 중 하나로, Working tree 또는 Work tree라고도 하며, 눈으로 볼 수 있는 디렉토리 자체를 의미
  • Git은 Work space를 자동으로 스캔

파일들의 상태를 확인하기 : git status

  • On branch main - 현재 브랜치는 main 브랜치

  • No commits yet - 아직 커밋을 하지 않음

  • Untracked files: ~ Untracked는 Git의 관리 하에 있는 파일이 가질 수 있는 상태 중 하나

  • (use “git add …” to include in what will be committed) - git add 파일_이름을 입력하면 커밋될 것들에 해당 파일을 포함시킬 수 있다는 의미

  • nothing added to commit but untracked files present (use "git add" to track) - 아직 add된 파일들이 없으며 Untracked 상태의 파일이 존재하니, git add 명령어를 사용하라고 안내

파일의 상태

Untracked - Git에 의해 파일의 상태가 추적되고 있지 않은 상태를 의미

Tracked - 파일의 상태가 추적되고 있음을 의미

  • Unmodified : 파일의 수정이 Git에 의해 감지되지 않은 상태
  • Modified : 파일의 수정이 Git에 의해 감지된 상태
  • Staged : 파일이 Staging area에 존재하는 상태

Staging area - Local repository에 저장할 파일들이 임시적으로 대기하는 영역을 의미

Staging area로 파일을 이동시키기 : git add

  • Changes to be committed: ~ : 변화가 감지되었으며, 아래의 파일들을 Commit할 수 있음을 의미
  • (use "git rm --cached ..." to unstage) : 새롭게 생성하여 스테이징한 파일을 다시 Work space로 되돌릴 수 있다는 의미
  • new file: hello_git.txt : Git이 hello_git.txt라는 새로운 파일을 감지하였음을 의미

파일을 Local repository에 저장하고 버전을 기록하기 : git commit

  • Commit이란, Local repository에 파일을 저장하는 행위를 가리키며, 파일을 Local repository에 저장함과 동시에 파일의 버전을 기록한다
  • it commit을 입력하면 여러 줄의 커밋 메세지를 입력할 수 있는 텍스트 편집기 창이 뜨지만, 보통 여러 줄의 커밋 메세지보다는 짧게 요약하여 한 줄만 작성한다. 이러한 경우에는 git commit 명령어의 옵션 중 -m을 사용

  • [main db ~] commit : 커밋을 실시한 브랜치(main)와 커밋 해시의 앞부분(db5d4e0), 그리고 커밋 메세지(commit)가 보여진다 , 커밋 해시는 각 커밋마다 부여되는 고유한 ID와 같다
  • 1 file changed, 1 insertion(+) : 변경된 내용을 보여준다 -> 파일이 Tracked 상태로 변화되었음을 의미

Commit 내역 확인 : git log

  • commit ~ - 커밋 해시를 나타내며, 커밋 해시는 각 버전마다 부여되는 고유 번호
  • First commit - 커밋 시에 입력한 커밋 메세지.

파일의 상태 : git status

위 메세지는 Work space 내의 파일들의 상태가 모두 Unmodified일 때 나타나는 메세지

알수 있는 두가지 사실

  • hello_git.txt가 Local repository에 저장되었고, Local repository에 저장된 버전과 Work space 내의 hello_git.txt 간에 차이가 없기 때문에 새롭게 Commit할 것이 없으므로 hello_git.txt의 상태가 Unmodified로 변경된 것
  • 상태가 Unmodified라는 것은 Tracked 상태를 의미

위 메세지는 hello_git.txt를 수정하고 난 메세지

  • Changes not staged for commit: : Local Repository의 최신 버전과 Work space의 파일 간의 변화가 감지되었으나 아직 스테이징되지 않았음을 알려준다
  • modified: hello_git.txt : 변화가 감지된 파일을 알려주며, 문구가 빨간색이라는 것은 아직 스테이징되지 않았음을 시각적으로 보여주기 위함이다.
  • (use "git add <.file>..." to update what will be committed) : git add를 사용하여 스테이징할 수 있음을 알려주고 있다.
  • (use "git restore ..." to discard changes in working directory) : git restore를 사용하여 변경 내용을 다시 되돌릴 수 있음을 알려주고 있다.

위 메세지는 git add. 후 git status한 메세지
  • Changes to be committed: : Local Repository의 최신 버전과 Work space의 파일 간의 변화가 감지되었고, Commit이 가능하다는 것을 알려주고 있다
  • modified: hello_git.txt : 변화가 감지된 파일을 알려주고, 문구가 초록색이라는 것은 해당 파일이 스테이징 되었음을 시각적으로 보여주기 위함이다.
  • (use "git restore --staged <.file>..." to unstage) : git restore에 --staged 옵션을 붙여 사용하면 스테이징을 취소할 수 있다.

작업물을 Remote repository로 업로드하기 : git push

작업물을 온라인에 업로드하기 위한 과정

  1. Remote repository 만들기
  2. Github 로그인 후 Your repositories 클릭
  3. New 클릭 후 원격 저장소 생성

Remote repository와 Local repository를 연결하기 : Git remote

  1. Remote repository의 URL 복사
  2. 터미널에서 git remote add origin 복사한 원격 저장소_URL 입력
  3. git remote --v로 연결 확인

작업물을 업로드하기 : git push

  1. git push 원격 저장소 별칭 브랜치 이름 입력 ex) git push origin main
  2. 브라우저 새로고침

Remote Repository의 코드를 로컬로 복사해오기 : git clone

  1. 새로운 디렉토리 만들기
  2. Remote repository의 URL을 복사
  3. 터미널에서 git clone 복사한_URL 입력

강사님이 알려주신 꿀팁 : 커밋을 한번이라도 해봤으면 commit -am 명령어 사용가능 -> add 과 메세지 동시 사용

profile
백엔드 취준생

0개의 댓글