Git 설치와 기초 명령어

🪐 C:on·2021년 12월 20일
0

GIT

목록 보기
1/2
post-custom-banner

🔨 설치

공식사이트에서 OS와 비트에 맞게 설치해준다.

설치 구성요소는 다음을 의미 하니 참고하여 선택한다.

1.Additional icons > On the Desktop

  • 바탕화면에 아이콘 추가

2.Windows Exporer integration

  • Git Bash Here : Git Bash 연결기능(폴더에서 Git을 바로 연결할 수 있는 기능)
  • Git GUI Here : Git GUI 연결기능(폴더에서 Git을 바로 연결할 수 있는 기능)
    해당 설치를 통해 폴더에서 마우스 우클릭 해보면 Git Bash Here,Git GUI Here가 추가되어 있는 것을 볼 수 있다.

3.Git LFS (Large File Support)

  • 용량이 큰 File 지원

4.Associate .git configuration files with the default text editor

  • git 구성파일을 기본 텍스트 편집기와 연결

5.Associate .sh files to be run with Bash

  • 확장자.sh 파일을 Bash와 연결

6.Use a TrueType font in all console windows

  • 윈도우 콘솔창에서 TrueType 글꼴 사용

7.Check daily for Git for Windows updates

  • 윈도우즈용 Git 업데이트를 매일 확인 할지 여부

출처: 갓대희의 작은공간

🔨 기본 설정

계정 설정

git config --global user.name [myname]
git config --global user.email [email]

계정을 설정한다.

현재 계정을 확인하려면 git config -l 을 입력하면된다.


캐리지리턴 설정

윈도우에서는 깃에 저장할 때 ‘\r’ 문자열을 칭하는 캐리지리턴을 자동으로 삭제해준다.
맥과 저장방식이 다르기 때문에 협업시 이 부분때문에 문제가 발생할 수 있으므로 설정이 필요하다.

git config --global core.autocrlf true

운영체제마다 줄바꿈의 문자열이 달라서 생기는 문제를 방지해주는 명령어이다.


🔨 기본 명령

깃 초기화

git init

프로젝트의 깃을 시작해준다.

.git 폴더가 숨김 상태로 생성되는데 그냥 ls명령어로는 보이지 않고 ls -al 을 통해서 확인이 가능하다.

open .git 을 통해 확인해볼 수 있습니다.

깃을 초기화하면 기본적으로 마스터 브랜치가 생성됩니다.


브랜치

git branch

브랜치를 확인한다.

git checkout <branch_name>

브랜치를 전환한다.

git checkout -b <branch_name>

새로운 브랜치를 생성함과 동시에 전화한다.


단축키 생성

git config —global alias.st status

위는 git status라는 명령어를 git st라는 단축어로 지정해준 예 이다.

반복적으로 자주 사용되는 git commit -am 명령어를 git ca로 지정해서 사용하는 등 여러가지 명령어의 단축어를 만들어두면 편하다.


🔨 Git flow

위 사진이 머리에 저장되면 깃 flow는 끝난것이다.

untracked파일이 add되면 stage상태가 되고 커밋이 되면 unmodified가 된다. 수정이 이뤄지면 modified가 되며 add를 해주면 다시 stage가 되고 commit을 하면 unmodiride가 되는 과정이 반복된다.


track

track이란 추적의 의미로 깃이 이 파일을 관리하는 상태로 변환시켜주는 것이다.

깃이 사용되는 폴더내에 변경사항이 생기면 브랜치의 색이 변한다.

git status를 보면 트랙되지 않은 파일들이 확인할 수 있다.


add

git add 를 통해 전체 또는 특정 파일을 트랙킹시켜줄 수 있다.

a.txt를 tracking했다.
add를 통해 track이 되면 기본적으로 stage파일이 된다.

traking하는 파일이 수정되면 그 파일은 unstage파일로 분류된다.
깃 버전 히스토리에 commit하기 위해선 다시 add명령어를 통해 stage파일로 만들어주어야 한다.


stage→unstage

stage 상태 변경을 취소하기 위해서 rm명령어를 사용할 수 있다.

git rm --cached <file> 또는 *


.gitignore

.log파일을 모두 git에 올리지 않으려면 echo *.log >> .gitignore 명령으로 .gitignore파일 생성과 동시에 모든 log확장자 파일에 대하여 write한다.

.gitignore에 등록된 폴더와 파일들을 git의 관리 밖에 존재한다.

.gitignore에는 특정 파일을 넣어줄 수 있고 폴더나 어떤 폴더안의 파일도 지정해줄 수 있다.


git status -s

상태를 간략히 확인할 수 있다.

untrack은 ?? 이다.

track이 되면 stage, modified, unmodified 3가지 상태가 됩니다.

stage상태면 A, modified상태면 M이 된다.

A와 M이 같이 뜨는 경우는 해당 파일을 tracking을 해주었는데 아직 커밋하지 않은 상태에서 추가로 수정이 이뤄져서 A와 M이 함께 뜨는 것이다.


🔨 파일 비교 diff

프롬프트에서 파일을 비교하기 보단 vscode로 비교하면 훨씬 편하다

파일이 modifed상태면 git diff를 통해 파일의 변경사항을 확인하게 되는데 이때 터미널말고 vscode로 자동 연결시켜주는 설정이 있다.

git config —global -e 를 통해 전체 .gitignore 파일로 이동해서 다음 코드를 추가해준다.

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

이제 git difftool 을 입력하면 vscode가 열리면서 파일을 비교하는 창이 생성된다.
명령어 끝에 파일이름을 붙이면 해당 파일의 비교창만 열린다.


🔨 Commit

git commit -m "first commit”

다음 명령어로 커밋을 할 수 있다.

git commit -am “commit”

add까지 함께 커밋할 수도 있다.


커밋을 하는 단위

작은 단위로 하면 나중에 관리에 용이하다.

커밋메시지에 해당하는 내용만 커밋하는 것이 중요합니다!

너무 커도 문제. 너무 작아도 문제이므로 프로젝트를 하면서 감을 쌓으면서 하자.



🔨 Clone

클론을 진행할 폴더로 이동해서 git clone <URL> 을 통해 파일을 가져온다.

git brach <name>을 통해서 브랜치를 생성하고 git checkout <name>으로 브랜치를 변경해준다.

처음 git push origin <name>을 진행하면 깃허브에 브랜치가 생성이 된다.

origin은 깃허브의 저장소를 말한다.

깃허브 저장소를 upstream이라고 표현하고 현재 로컬을 downstream이라고 표현할 수 있는데
이때 git push만으로 계속 깃허브에 푸시를 하기 위해선 git push --set-upstream origin test 명령어를 한번 입력해주면 된다.

이 이후에는 git push origin <name>가 아니라 git push만 입력하면 깃허브 저장소로 push가 이뤄진다.


🔨 취소

modified 취소

"git checkout -- <file>..."

이 명령어를 사용하면 원래 파일로 overWriting하는 것이기 때문에 수정한 내용이 전부 사라진다. 커밋이 되어있지 않기 때문에 위험한 명령어임을 알 수 있다.


add, commit 취소

이해를 도와줄 만화

커밋을 취소하는 명령어는 크게 resetrevert가 있다.

git reset(or revert) <option> <git hash(=커밋아이디)>

reset을 사용하면 특정 커밋으로 시간을 돌리기 때문에 돌아간 시간대 이후의 커밋들은 모두 사라진다.
revert는 특정커밋만 취소하고 그 뒤에 커밋을 그대로 유지합니다. 따라서 conflict가 발생할 수 있다.

이미 push한 상태라면 reset을 사용하면 안된다. 원격저장소는 과거로 돌릴 수 없기 때문이다.
이때는 conflict를 감수하고 revert를 사용해야 한다.

옵션은 다음 세가지로 상태와 파일존재여부에 주의해서 사용해야 한다.

  • --soft : add가 진행된 staged상태, 파일 보존
  • --mixed : add가 되지 않은 unstaged상태, 파일 보존(옵션을 적지 않을 경우 default로 설정되는 옵션)
  • --hard : 파일과 모든 상태를 삭제

push 취소

3단계를 차례대로 진행해준다.

  1. 먼저 git reset ~~ 로 커밋을 취소
  2. 복귀한 상태를 git commit -m "recommit"으로 다시 커밋
  3. push를 진행할 건데, 경고가 발생하므로 git push origin [branch] -f 로 강제 진행
post-custom-banner

0개의 댓글