git restore —staged 파일명
: 편집기, 터미널로 .txt 파일 내용을 추가할 수 있다
vi a.txt
i를 누르면 insert모드가 되어 편집이 가능하며, esc를 누르면 편집모드가 종료된다.
비어있는 파일은 비어있는 한줄로 끝을 판단하기 때문에 마지막줄을 비워주는게 좋다.
편집모드를 종료하려면
:w 저장 + :q 나가기로 종료하거나
:wq 저장하고 나가기로 종료할 수 있고, 작업하던 터미널로 돌아가게 된다.
: 문서의 내용을 보여주는 명령어
cat 파일명
: 현재 디렉터리의 상황을 보여준다. 현재 깃이 어떤 상태를 추척하고 있는지 보여줘라!
git status
: 커밋메시지는 제목과 본문으로 이루어지는데, 다른 개발자가 어떤 변경사항을 만들었는지 이해할 수 있어야한다.
git commit -am “커밋메시지”을 쓰면 커밋과 add를 함께 할 수 있다. 현재 저장소에 버전이 하나이상있어야 사용가능하다.( git log라고 쳤을 때 아무것도 안나올때 사용할 수 없다. )
git commit —amend를 입력하면 커밋메시지를 변경할 수 있다.
git commit -m "커밋메시지”
git commit
git commit -am “커밋메시지”
git commit —amend
git commit 만 쓰게 되면 commit메시지를 제목과 본문을 함께 작성할 수 있음. 첫번째라인-제목, 세번째라인-내용
: 만들어진 버전을 보여줌.
git log —oneline 은 git log 한 줄로 간단히 볼 수 있다. ( 커밋메시지 제목만 나옴 )
git log -p 는 변경사항을 볼 수 있다.
git log -graph 은 branch 그래프를 볼 수 있다.
git log —oneline
git log -p
git log -graph
git diff 는 최신 커밋 이후로 어떤 변경사항이 나왔는지 볼 수 있다. 가장 최신 커밋과 변경사항의 차이점을 알 수 있다.( 작업디렉터리와 비교 )
git diff —staged 는 stage와 현재커밋을 비교하는 명령어이다.
git diff 커밋해시 커밋해시 는 커밋끼리의 변경사항을 확인할 수 있다. 커밋해시는 앞에 노란 고유번호이다. 앞 커밋해시를 기준으로 뭐가 달라졌는지를 입력! 헷갈리지 말기!
git diff
git diff —staged
git diff 커밋해시 커밋해시
git revert : 버전을 되돌린 새로운 버전 만들기
git reset : 버전을 완전히 되돌리기 (시간 되돌리기 )
git revert 취소할커밋해시 ⇒ 커밋메시지 작성창 ⇒ :wq
git reset 되돌아갈커밋해시 (기본적으로 mixed 리셋이 됨 )
git reset —soft 되돌아갈커밋해시
(soft 자리에 hard / mixed/ soft작성 )
작업을 하긴했는데 버리긴 아깝고 다시작업하고 싶을 때 사용하며,작업중인데 급하게 기존 내용으로 작업내용을 되돌려서 작업해야 할 때 쓰는 명령어이다.
git stash -m “작업내용메모”
git stash list : 임시저장한 내용 리스트확인
git stash apply 스테시이름 : 스테시이름의 임시저장항목을 적용하겠다.
git stash drop 스테시이름 : 스테시이름의 임시저장항목을 삭제하겠다.
rm -rf 폴더명
: 브랜치가 깃이 존재하는 이유!!!!
HEAD : 현재 내가 서있는 작업환경의 최신 커밋을 가리킴
master : 깃이 제공하는, 기본, 최초의 Branch
main : master와 같은데 이름만 다름
stage는 push 전 버전에 대한 내용을 올려놓는 공간
git branch는 지금까지 쓴 branch의 목록을 보여준다.
git branch
*은 현재 작업환경(브랜치)를 표시한다.
: 새로운 작업환경 만들기
git checkout 브랜치명으로 branch에 체크아웃 할 수 있다. checkout은 특정브랜치에서 작업할 수 있도록 작업환경을 바꾸는 것이다.
git branch 브랜치명
checkout은 특정브랜치에서 작업할 수 있도록 작업환경을 바꾸는 것이다. git checkout 브랜치명을 입력하여 작업환경을 바꾼다.
git checkout 브랜치명
기준이 되는 branch로 체크아웃을 해서, 병합을 진행한다.
git merge 합치고싶은브랜치 를 입력해서 합치고 싶은 브랜치를 땡겨와서 병합한다.
git merge 합치고싶은브랜치
병합하려는 두 브랜치가 같은내용을 다르게 수정했을 때 발생한다. 충돌이면 어떤 브랜치의 내용을 반영할지 직접 선별하여 다시 커밋한다.
여기서 남길내용만 남기고 수정한다.
- 원격저장소의 identity
[git@github.com](mailto:git@github.com):hiheecho/test.git
- 원격저장소에 로컬저장소를 추가하고, origin이라는 이름으로 상호작용하겠다(origin은 원격저장소의 별명).
git remote add origin [git@github.com](mailto:git@github.com):hiheecho/test.git
- 지금있는 브랜치를 main으로 변경하겠다. (Modify)
git branch -M main
- origin이라는 원격저장소에 main 브랜치를 밀어넣을거야
git push -u origin main
- remote된 원격저장소의 별명을 나타냄
git remote
- remote된 원격저장소의 별명과 경로를 나타냄
git remote -v
- 원격저장소에 있는 내용을 내 로컬저장소에 복제!
git clone
git fetch origin main
원격저장소에서 수정된 내용을 가져는 오되, 병합하지 않는 방식
원격저장소에서 내 컴퓨터로 그 내용만 가져오고 병합하지 않았기 때문에 내 컴퓨터에는 반영되지 않는데, 이 때, 이와같은 코드를 써주면 내 컴퓨터에 반영이 된다.
git checkout FETCH_HEAD
그리고 내 로컬 main 에 체크아웃 한 후, origin/main(원격저장소의 main)과 병합하면 완전히 합쳐진다
git merge origin/main
원격 저장소를 가져와서 합치기 ( fetch + merge )
내 로컬저장소에 가져온 내용을 모두 업데이트 시켜주는게 pull
git pull origin main
내 원격 저장소(origin/main)에 있는 내용을 가져온다.
내가 소유하고 있지않은 원격저장소에는 푸시를 할 수 없다.
( 콜라보레이터를 추가해서 가능한 경우도 있긴 하다. )
그리고, 공동으로 협업하고 있는 저장소에 반영하고 싶을때 이용하는게 pull request이다.
pull request는 원격저장소가 내 변경사항을 풀하도록 요청을 보내는 방식이다.
pull request를 보내는 방법
깃 생각안나실때마다 오셔서 보실 수 있겠어요! ㅎㅎ