[TIL]/*elice*/DAY5
오늘은 깃에 대해 배웠다.
init, commit -m"", push만 사용했던것 같은데,, 깊이 알게되니까 너무 어렵다...!
Git을 사용하는 이유
Git은 협업을 위한 툴이며, 여러 버전을 동시에 관리할 수 있어 데이터의 안정성이 보장된다.
✅ 깃은 가지치기와 병합이 가능
✅ 서버와의 통신없이 로컬에서 진행되기 때문에 가볍고 빠름
✅ 사용자들이 복사된 파일로 동시에 작업이 가능!
✅ 프로젝트의 무결성 보장
✅ 수정내용을 repository에 업로드하기 전 준비 영역에서 미리 검토 후 반영할 수 있음.
Git 초기 설정
사용자 정보 설정
저장소에 코드를 반영할 때 등록될 사용자 정보를 설정
$ git config --global user.name "dyo"
$ git config --global user.email "[email protected]"
프로젝트마다 다른 사용자 정보를 지정하고 싶으면 저장소 생성 후 --global
옵션을 빼고 실행
설정 정보 확인
$ git config --list
Git 저장소 생성
$ git init
: 기존의 디렉토리를 git repository로 설정
기존의 디렉토리를 사용하고 싶다면 Git을 사용할 폴더로 이동 후 git init
실행
$ git init foldername
을 입력하면 폴더를 생성할 수 있다!
새로운 파일 생성
$ git add comment.js
git add 명령어를 사용하여 staging area으로 보내기
$ git add .
명령어를 사용하면 현재 폴더의 모든 파일을 staging area으로 보낼 수 있음!
$ git status
명령어로 staging area의 어떤 파일이 변경되었는지 파일의 상태를 확인할 수 있음
Git 저장소 반영
staging area로 파일을 올렸으면 무엇을 수정하고 추가했는지 메시지를 남겨 저장소에 저장
$ git commit
git저장소 내에 staging area에 있는 모든 파일을 저장
$ git commit -m "Initial commit"
저장소에 반영할 때 -m
을 사용해 메세지를 넣어주면 나중에 사용할때 어떤 부분이 바뀌었는지 알 수 있고, 협업을 할때도 중요한 역할을 함.
Git 저장소 반영 내용 변경
$ git commit --amend
메세지에 오타가 있거나 누락된 파일이 있을 경우에는 해당 옵션을 이용하여 수정하고 싶은 부분을 수정할 수 있음!
$ git commit --amend -m"수정할 커밋 메세지"
로도 수정할 수 있다.
$ git log
를 통해 저장소 반영 내역을 확인할 수 있음
Git 관리 상태 확인
$ git status
staging file들의 상태를 확인
$ git log
.git repository에 존재하는 commit history 확인 (저장소 반영내역 확인 가능)
- -p, -patch: 각 commit 의 수정 결과를 보여주는 diff와 같은 역할을 수행!
- -n: 상위 n개의 commit만 보여줌
- --stat : 어떤 파일이 commit에서 수정되고 변경되었는지, 파일 내 라인이 추가되거나 삭제되었는지 확인
- --pretty-oneline : 각 commit을 한 줄로 출력
- --graph: commit간 연결된 관계를 아스키 그래프로 출력해 주어 branch에서 유용하게 사용 가능
- -S : 코드에서 추가되거나 제거된 내용 중 특정 텍스트가 포함되어있는지 검사 가능
$ git diff
commit된 파일 중 변경된 사항 비교
Git 가지치기
Git Branch
독립적으로 어떤 작업을 진행하기 위함
각각의 branch는 다른 branch의 영향을 받지 않음!!
main branch
배포할 수 있는 수준의 안정적인 Branch
topic branch
기능 추가나 버그 수정과 같은 단위 작업을 위한 Branch
Git branch 생성
$ git branch 브랜치 이름
: 브랜치 생성
$ git branch
: 명령어를 통해 생성된 branch들 확인 가능
$ git checkout 브랜치 이름
: branch 전환
HEAD가 가리키는 것이 현재 있는 branch
fast-forward
master브랜치의 변경사항없이 다른 브랜치를 병합하여 새로운 내용이 추가됨
다른 브랜치를 master브랜치로 병합하고 싶다면
$ git checkout master
로 이동한 후,
$ git merge 다른 브랜치
명령어로 병합할 수 있다.
$ git branch --merged
명령어로 병합된 브랜치를 볼 수 있다.
Git branch 삭제
$ git branch -d 브랜치 이름
명령어를 통해 사용을 끝낸 브랜치를 삭제할 수 있다.
$ git branch -D 브랜치 이름
명령어는 병합하지 않은 브랜치를 강제로 삭제할 수 있다.
Git Merge conflict
병합한 두 브랜치에서 같은 파일을 변경했을 때 충돌이 발생한다.
$ git status
명령어로 어느 파일에서 충돌이 파일했는지 확인 할 수 있다.
수정을 한 후에는 git add
와 git commit
과정을 거쳐서 다시 병합해줘야한다.
Git 원격 저장소
원격 저장소 받아오기
$ git clone 원격저장소 주소
기존의 원격 git repository를 복사
$ git remote add origin 원격저장소 주소
원격 저장소와 연결
$ git remote
연결된 원격 저장소 확인
$ git remote show origin
원격 저장소 살펴보기
$ git remote rename origin 새이름
원격 저장소 단축 이름을 origin 에서 새이름으로 변경
$ git remote rm 이름
저장소 삭제
원격 저장소 동기화
$ git pull
: 원격 저장소에서 데이터 가져오기 + 로컬 데이터와 병합
$ git fetch
: 원격 저장소에서 데이터 가져오기 + $ git merge origin/master
로 병합 완료
$ git push origin master
: 로컬 저장소에서 작업한 내용을 원격 저장소에 반영
- 다른 사람이 먼저 push하면 push 할 수 없으므로 다른 사람이 작업한 것을 먼저 병합 하고 push 해야함.
What is origin
?
$ git remote add origin 원격저장소 주소
원격 저장소의 이름을 origin으로 지정하겠다는 의미!!
origin에 다른 이름이 들어가는 것도 가능함.
origin이 default이기 때문에 clone으로 복사해 온 저장소는 origin이 된다.
$ git remote -v
: 지정한 저장소의 이름과 주소를 볼 수 있다.
이것 외에도 더 많은 옵션들이 존재했는데, 어느정도 이해는 했지만 완벽하게 이해하기 위해서는 조금 더 해봐야 할 것같다!
Author And Source
이 문제에 관하여([TIL]/*elice*/DAY5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dyorong/TILeliceDAY5저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)