Git

Git과 Sourcetree 사용하기

일등하이 2022. 1. 12. 02:12
반응형

Git은 소규모 프로젝트부터 대규모 프로젝트까지 모든 것을 빠르고 효율적으로 처리하도록 설계된 무료 오픈 소스 분산 버전 제어 시스템입니다.

Git을 설치 해줍니다
https://git-scm.com/

Git

git-scm.com

다운로드 받고 설치 해줍니다



자주 쓰이는 터미널 명령어

git --version
버전 확인



git config --list
git에 관련된 모든 환경 설정 확인


환경 설정을 vim에디터로 열어 보고 싶다면

git config --global -e
#종료 커멘드 :q



core.editor를 visual studio code로 설정하기

작성이 모두 완료 될때까지 대기 하고 싶다면


사용자 정보를 설정

사용자 이름과 이메일 확인

에디터로도 확인 가능


운영체제마다 에디터에서 새로운 줄바꿈을 할때 들어가는 문자열이 달라지는데
windows같은 경우 \r\n(carriage-return, line-feed)이 동시에 들어가는 반면
mac은 \n 만들어가기 때문에 이것이 파일의 변경사항에 포함되지 않도록 하는것







명령어 레퍼런스
https://git-scm.com/docs

Git - Reference

Reference

git-scm.com





projects폴더 안에 git 폴더를 만들어 줍니다

git 폴더로 와서 git init명령어를 작성해서 초기화 해줍니다
-al 옵션을 줘서 숨겨진 파일을 봅니다


숨겨진 폴더를 열어서 보면 git repository에 있는 다양한 파일들을 확인 할수 있다



깃을 초기화 하게 되면 기본적으로 master 브렌치가 생성이 됩니다




.git 삭제하기 (더이상 깃으로 버전 관리를 하고 싶지 않을때)


소스트리에 연결하기


Sourcetree설치
https://www.sourcetreeapp.com/

Sourcetree | Free Git GUI for Mac and Windows

A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.

www.sourcetreeapp.com

건너뛰기

아니오
초기화된 프로젝트 폴더를 드레그&드롭 한다


로컬 저장소를 만들어 봅니다

해당 경로에 폴더가 없다면 새로 생성 됩니다
생성된 저장소는 git 초기화가 되어 있습니다






git 상태를 알아보는 명령어



명령어에 별칭 달기 (타이핑을 줄여 줍니다)





git 명령어 help


working directory
파일을 생성하고 수정하는 작업 공간

  • untracted : 새로 만들어진 파일 
  • tracked : 버전관리 되어 있는 파일 
    • unmodified : 수정되지 않은 파일 
    • modified : 수정된 파일 (commit 가능) 즉 staging area로 옮겨 갈수 있다 


staging area
작업이 어느정도 완료가 되면 버전 history에 저장할 준비가 된 파일들을 옮겨놓는 공간

.git
버전의 history를 가지고 있는 git repository 또는 git directory라고 하는 공간이 있다


작업 공간에서 작업 하다가 완성된 파일을 staging area에 옮겨두고 commit 명령어를 이용해서 git repository에 있는 history에 저장하게 된다

이렇게 .git directory에 저장된 버전들은 언제든지 check out 명령어를 통해 원하는 버전으로 돌아갈수 있다

저장된 history들은 로컬에만 저장되기 때문에 안전하지 않다

그래서 보통은 이런 .git directory를 원격저장소(github와 같은)에 저장하는것이다

이때 push라는 명령어로 로컬 git repository를 서버에 (원격 저장소) 업로드 할수 있다

그리고 서버에서 다시 로컬로 다운로드 받고 싶을 때는 pull이라는 명령어를 사용하면 된다




파일을 하나 만들고 hello world를 적는다

파일을 직접 만들어도 무방하다

b.txt와 c.txt도 동일하게 만들어 준다




git 상태를 확인 합니다


On branch master 위에서 작업을 하고 있고
아직 commit 된것이 없으며 untracked 된 파일들이 a.txt, b.txt, c.txt가 있으며
git add명령어를 사용해서 track 상태로 만들어 줘야 한다



a.txt 파일을 track상태로 만들기 (staging area에 옮기기)

git 상태 확인하기


git add <file> 명령어는 tracked 상태로 변경하여 staging area로 옮기는 작업이다



모든 파일을 staging area로 옮기고 싶다면
git add *.txt 명령어를 사용한다


a.txt 파일의 내용을 변경후 상태를 확인 해본다

이때 a.txt파일은 staging area에 있으며 working directory에서도 modified 상태이다.


Sourcetree를 이용하면 보다 편리하게 관리 할수 있다

스테이지에 올라가지 않은 파일 a.txt를 클릭해보면 변경사항이 보인다&amp;nbsp;



a.txt 파일 스테이지에 올리기


git 상태 확인 하기


git rm --cached <file> 명령어를 실행해서 스테이지에서 다시 작업 공간으로 가져올수도 있다





git add * 를 사용하면 모든 파일들이 스테이지에 올라가게 되는데 이때 만약 a.txt파일이 지우고 git add * 를 하고 git status 를 하면 삭제된 a.txt파일은 작업공간에 없었기 때문에 스테이지에 추가 되지 않는다
이때 git add . 을 사용하면 모든 파일들을 포함해서 스테이지에 올리게 된다


특정 확장자를 가진 파일들만 추가 하고 싶다면
git add *.cs 명령어를 사용한다


git에 포함하고 싶지 않은 파일이 있다면
echo *.log > .gitignore 명령어를 사용한다
그럼 .gitignore파일이 만들어 진다
그러면 igore된 파일은 git status 해도 untracked 에도 보이지 않는다

이때 숨겨진 파일 .gitignore파일을 열어
특정 파일 ex) test.vs
특정 확장자를 가진 모든 파일 ex) *.log
폴더명 ex) Temp/
폴더 안에 있는 파일들 ex) Temp/*.log
등으로 추가 할수 있다


상태를 간략 버전으로 보고 싶다면 git status -s 명령어를 사용한다



git diff 명령어를 사용해 변경사항을 확인해볼수 있다
뒤에 옵션이 없으면 working directory에 있는것만 보여준다

cat 명령어로 해당 파일의 내용을 보면 hello world는 스테이지에 있고
hello smilejsu는 working directory (modified)에 있기 때문에 git diff 하면

만 보이게 된다
이때 staging area에 있는것들도 보고 싶다면 git diff --staged 명령어를 사용하면 된다




설정파일을 열고

[diff] tool = vscode [difftool "vscode"] cmd = code --wait --dif $LOCAL $REMOTE

를 추가 해준다



커밋하기

파일을 닫으면&amp;nbsp;
커밋이 완료 된다&amp;nbsp;




History 확인해보기



git commit -m "comment" 명령어로 간단하게 커밋이 가능하다



변경사항들을 add . 없이 commit 명령어로 한번에 하고 싶다면
git commit -a -m "comment"를 사용한다
다음과 같이 옵션은 붙여서 쓸수 있다 (순서 상관없음) -am




Sourcetree에서는 간단한 조작으로 스테이지에 올리고 커밋할수 있다



위로 드레그 & 드롭


comment 달고 커밋 하기

반응형