Git, Github 개념잡기

최현진·2022년 12월 28일
0

ㅇMpeon

목록 보기
6/9
post-thumbnail

Git, Github

정의

git은 여러명의 사용자가 스레드나 프로세스와 같이 쪼개져있는 서비스를 함께 구축하기 위한 협업에 필요한 툴이다, Github는 그런 Git을 사용하기 위한 온라인 호스팅 및 커뮤니티 서비스로 수많은 프로그래머들이 개발한 오픈소스들의 데이터바다이며, 누구나 지구반대편의 사람과 함께 협업이 가능하다는데에 의의를 둔다

기타

git은 cli기반 프로그램이지만 gui를 이용하여 개발할수있는 툴들이 많이 개발되어있다.
github desktop,sourcetree등의 gui와 함께 cli를 사용하여 개발을 진행할수있다
github desktop은 주로 github를 이용할때에 주로 쓰이고 그외에 sourcetree나 그외의 툴은 개별의 호스팅서비스를 제공하여 git을 push 및 pull할수있게 도와준다, 물론 github도 제공하는것이 대부분이다

본인의 사용환경

Apple M1 Mackboock air(Monterey)
Iterm2
Sourcetree

초반설정

visual studio code와 연결


위의 명령어를 실행하여 code 에디터를 vs code로 지정해줌과 동시에 편집기가 닫히기 전까지 동작을 멈추도록 설정해준다

vs code 오류

만약 such file or directory오류나 command not found오류가 나게된다면 터미널에서 다음과 같은 코드를 실행한다

$ cd /
$ cd usr/local/bin
$ rm -rf code

그후 vs code에서 command + shift + p (윈도우 ctrl + shift + p 혹은 f1키도 가능하다)를 눌러 vs code 설정을 켠후 code를 검색하여 path를 추가해준다
이후에 다시 실행하면 path가 지정된 vs code가 정상적으로 실행 될것이다.

사용자 이름 및 이메일 지정


다음과 같이 사용자의 이름과 이메일을 지정해줄수있다

autocrlf설정

다음과 같이 autoclrf를 input으로 (윈도우 사용자는 true로) 설정해준다

autocrlf설정

autocrlf는 윈도우와 mac의 줄바꿈 문자열 차이때문에 존재하는데
윈도우에서는 줄바꿈 문자열이 \r\n이지만 mac에서는 줄바꿈 문자열이 \n 이므로 만약 사전 설정없이 git에 커밋한 후 pull하여 정보를 보게된다면 줄바꿈 문자열의 차이로 가독성을 해치는 문제가 발생해서, 그러한 문제를 없애고자 이렇게 설정을 해줘야 한다

Git의 중요 작업흐름

working directory

의미

실제로 작업과 수정이 이뤄지는 공간으로써 이곳에서 대부분의 작업이 이루어진다

tracked와 untracked

tracked

git이 알고있는파일들, tracking하는 파일

  • modified
    수정된(이전버전과 비교해서)파일, 이 파일만 staging area로 옮길수 있음
  • unmodified
    수정이 되지않은(이전버전과 비교해서)파일

untracked

새로 만들어진 파일이거나 기존에 존재하던 프로젝트에서 git init명령어를 통해 git을 초기화하게되어 git에게 파일에대한 정보가 없는 파일들

Staging area

의미

버전 히스토리에 저장할 준비가 되어있는 파일들을 로컬에서 옮겨놓는 공간으로 이곳에서 commit 해야만 git directory로 옮겨 히스토리로 등록해 이용할수있다

.git directory

의미

버전의 히스토리를 보유하고 관리하는 공간으로써 이곳에 올라가는 모든 파일들은 작업 후 스테이징 공간을 거쳐 최종적으로 올라오게 된다, 이곳의 파일들은 직접수정이 불가능하며 checkout을 통해서 언제든지 원하는 버전으로 돌리는것이 가능하다

remote area

위의 세 공간들은 local에서 나눠진곳으로 로컬에서 나눠진 작업 환경이지만, remote area의 경우, github나 그외 다양한 호스팅 서비스들을 토대로 이루어진 공간으로써, 이곳에다 push(로컬에서 서버로)와 pull(서버에서 로컬로)등을 통해 다른사람들과 공유하고 협업하기위한 장치로 이용할 수 있다
전체적인 개념은 .git directory와 비슷하며, .git directory의 클라우드 개념이다

주요 기능들

Commit

작업물 전체를 저장하고 마치 사진을 찍듯이 전체의 모습을 저장하여 보관하는 기능으로써 고유한 해시코드로 구분한다, 해시코드는 40 캐릭터의 문자열로 이루어져있고, 이 해시코드를 통해 추후 push 및 pull시에 각각의 버전을 구분하는 이름표 역할을 하게된다
commit하게된 버전은 내용을 포함하여야 하기때문에 필수적으로 어떠한 기능을 추가,혹은 제거했는지 작성자가 누구이며 언제 몇시에 작성되어 적용된것인지등을 포함하는 정보등을 기술하여 commit하여야 추후 구분하기에 용이하다.

위와같이 변경사항을 저장하고, 커밋하여야한다!

profile
Lorem ipsum dolor sit amet

0개의 댓글