기본 설정
기본설정으로는 git config으로 유저의 정보를 저장,
log를 이쁘게 표현하기위한 git config --global alias.adog...(그래프를 보기쉽게 표현하는 명령어들)
이후 directory를 설정해준 후, git init으로 repository(저장소)를 지정해주면 Git 사용준비 끝!
temp 파일을 위와같이 만들어주고, git status를 사용하면
※ git status : 현재 리포지토리의 상태를 확인.
붉은 글씨로 temp 파일이 변경되어 modified 상태라는 것을 확인할 수 있다.
이는 변경사항은 있지만 아직 commit 하기 위해 staging 되지 않은 상태라는 뜻이다.
이를 staging 하기 위해서 git add를 사용한다.
git add temp.txt를 입력하면,
위와 같이 초록색 글씨로 staging 되었음을 확인할 수 있다.
변경사항 이전으로 상태를 되돌린다.
파일을 staging 했다면, 이제 commit을 해야한다.
staging 상태에서 git commit "commit name"을 사용하면 commit 되지않는다. 이때는 -m라는 명령어가 필요하다.
git commit -m "commit name"을 입력하면 commit이 되었다는 것을 확인 할 수 있다.
git log를 활용하면, commit이 생긴것을 확인할 수 있다.
※git log : 그래프를 보여줌.
HEAD에 side라는 branch가 생성되었음을 확인 할 수 있다.
어제 보았던 것과 같이, -f 옵션으로 branch를 강제 이동할 수 있다.
git branch -f "branch name" "이동할 곳"을 입력하면,
side 라는 branch가 5db9e98이라는 commit으로 이동했음을 확인 할 수 있다.
이렇게 브랜치로도 이동할 수 있다.
-b옵션으로 branch를 만들고 바로 이동시킬수도 있는데, git checkout -b "branch name" "위치"를 입력하면,
새로운 branch가 만들어지고, 그 쪽으로 HEAD가 이동했음을 확인할 수 있다.
git merge
merge는 commit들을 합칠 수 있는데,
이런 경고문들이 나오는 경우가 있다. 이는 합칠 두개의 파일에 충돌이 있는 경우인데, 이 때 temp 파일을 확인하면
현재의 commit과 합칠 commit이 충돌하는 것을 확인 할 수 있다. 두개의 commit에서 같은 줄에 다른 내용이 있다면, git은 이를 알아서 합치지 않고, 어떤 것을 버리고 취할 것인지, 아니면 두 변경사항 모두 선택할 것인지를 선택하라고 한다.
accept both changes를 선택하면,
모든 변경사항들을 순서대로 정리하여 표현해준다.
이를 저장하고 add, commit 해주면,
성공적으로 merging 된 것을 확인할 수 있다.
git reset
이런 형태로 commit들이 있을 때, third commit을 다시 없는 상태로 되돌리려면 reset을 사용한다.
git reset main^로 main의 부모로 reset해주면,
위와 같이 reset된 것을 확인 할 수 있다.
--continue 해주고, commit 해주면, merge complete라는 commit 아래에 revertCommit이 생기고 main과 HEAD가 이동한 것으로 성공적으로 revert된 것을 확인 할 수 있다.
side라는 branch를 복사하여 main 밑으로 붙여넣기위하여, git rebase main side를 입력하였고, merging할 때와 같이 conflict가 발생한다. 이를 바꾸어주고, --continue 명령어를 이용하면,
위와같이 rebase 된 것을 확인 할 수 있다.
위의 commit tree에서 HEAD 밑으로 세개의 commit을 하기위하여 명령어를 입력하였고,
3개의 commit을 cherry-pick 했으므로, 세번의 --continue를 거치고, merging할 때와 같은 conflict 경고문이 뜨면 merging, rebase때와 마찬가지로 해결해주면 된다.
temp의 conflict를 해결하고 commit 해주면,
아래와 같이 cherry-pick이 성공했음을 보여준다.