공식사이트에서 OS와 비트에 맞게 설치해준다.
설치 구성요소는 다음을 의미 하니 참고하여 선택한다.
1.Additional icons > On the Desktop
2.Windows Exporer integration
3.Git LFS (Large File Support)
4.Associate .git configuration files with the default text editor
5.Associate .sh files to be run with Bash
6.Use a TrueType font in all console windows
7.Check daily for Git for Windows updates
출처: 갓대희의 작은공간
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
로 지정해서 사용하는 등 여러가지 명령어의 단축어를 만들어두면 편하다.
위 사진이 머리에 저장되면 깃 flow는 끝난것이다.
untracked파일이 add되면 stage상태가 되고 커밋이 되면 unmodified가 된다. 수정이 이뤄지면 modified가 되며 add를 해주면 다시 stage가 되고 commit을 하면 unmodiride가 되는 과정이 반복된다.
track이란 추적의 의미로 깃이 이 파일을 관리하는 상태로 변환시켜주는 것이다.
깃이 사용되는 폴더내에 변경사항이 생기면 브랜치의 색이 변한다.
git status
를 보면 트랙되지 않은 파일들이 확인할 수 있다.
git add
를 통해 전체 또는 특정 파일을 트랙킹시켜줄 수 있다.
a.txt
를 tracking했다.
add를 통해 track이 되면 기본적으로 stage파일이 된다.
traking하는 파일이 수정되면 그 파일은 unstage파일로 분류된다.
깃 버전 히스토리에 commit하기 위해선 다시 add명령어를 통해 stage파일로 만들어주어야 한다.
stage 상태 변경을 취소하기 위해서 rm명령어를 사용할 수 있다.
git rm --cached <file> 또는 *
.log파일을 모두 git에 올리지 않으려면 echo *.log >> .gitignore
명령으로 .gitignore파일 생성과 동시에 모든 log확장자 파일에 대하여 write한다.
.gitignore에 등록된 폴더와 파일들을 git의 관리 밖에 존재한다.
.gitignore에는 특정 파일을 넣어줄 수 있고 폴더나 어떤 폴더안의 파일도 지정해줄 수 있다.
상태를 간략히 확인할 수 있다.
untrack은 ?? 이다.
track이 되면 stage, modified, unmodified 3가지 상태가 됩니다.
stage상태면 A, modified상태면 M이 된다.
A와 M이 같이 뜨는 경우는 해당 파일을 tracking을 해주었는데 아직 커밋하지 않은 상태에서 추가로 수정이 이뤄져서 A와 M이 함께 뜨는 것이다.
프롬프트에서 파일을 비교하기 보단 vscode로 비교하면 훨씬 편하다
파일이 modifed상태면 git diff를 통해 파일의 변경사항을 확인하게 되는데 이때 터미널말고 vscode로 자동 연결시켜주는 설정이 있다.
git config —global -e
를 통해 전체 .gitignore 파일로 이동해서 다음 코드를 추가해준다.
[diff]
tool = vscode
[difftool "vscode"]
cmd = code --wait --diff $LOCAL $REMOTE
이제 git difftool
을 입력하면 vscode가 열리면서 파일을 비교하는 창이 생성된다.
명령어 끝에 파일이름을 붙이면 해당 파일의 비교창만 열린다.
git commit -m "first commit”
다음 명령어로 커밋을 할 수 있다.
git commit -am “commit”
add까지 함께 커밋할 수도 있다.
작은 단위로 하면 나중에 관리에 용이하다.
커밋메시지에 해당하는 내용만 커밋하는 것이 중요합니다!
너무 커도 문제. 너무 작아도 문제이므로 프로젝트를 하면서 감을 쌓으면서 하자.
클론을 진행할 폴더로 이동해서 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가 이뤄진다.
"git checkout -- <file>..."
이 명령어를 사용하면 원래 파일로 overWriting하는 것이기 때문에 수정한 내용이 전부 사라진다. 커밋이 되어있지 않기 때문에 위험한 명령어임을 알 수 있다.
커밋을 취소하는 명령어는 크게 reset
과 revert
가 있다.
git reset(or revert) <option> <git hash(=커밋아이디)>
reset을 사용하면 특정 커밋으로 시간을 돌리기 때문에 돌아간 시간대 이후의 커밋들은 모두 사라진다.
revert는 특정커밋만 취소하고 그 뒤에 커밋을 그대로 유지합니다. 따라서 conflict가 발생할 수 있다.
이미 push한 상태라면 reset을 사용하면 안된다. 원격저장소는 과거로 돌릴 수 없기 때문이다.
이때는 conflict를 감수하고 revert를 사용해야 한다.
옵션은 다음 세가지로 상태와 파일존재여부에 주의해서 사용해야 한다.
3단계를 차례대로 진행해준다.
git reset ~~
로 커밋을 취소git commit -m "recommit"
으로 다시 커밋git push origin [branch] -f
로 강제 진행