- Git bash

리문·2022년 4월 19일
0

Git Bash

Git Bash 명령어

기본 설정

기본설정으로는 git config으로 유저의 정보를 저장,


log를 이쁘게 표현하기위한 git config --global alias.adog...(그래프를 보기쉽게 표현하는 명령어들)
이후 directory를 설정해준 후, git init으로 repository(저장소)를 지정해주면 Git 사용준비 끝!

  • git add
    git add는 변경사항이 있는 파일을 스테이징 해주는 명령어이다.

temp 파일을 위와같이 만들어주고, git status를 사용하면
※ git status : 현재 리포지토리의 상태를 확인.

붉은 글씨로 temp 파일이 변경되어 modified 상태라는 것을 확인할 수 있다.

이는 변경사항은 있지만 아직 commit 하기 위해 staging 되지 않은 상태라는 뜻이다.

이를 staging 하기 위해서 git add를 사용한다.
git add temp.txt를 입력하면,

위와 같이 초록색 글씨로 staging 되었음을 확인할 수 있다.

  • git restore
    git restore는 staging 상태인 파일을 다시 되돌리거나, modified상태인 파일을 다시 되돌리는 명령어이다.
    staging 상태라면 git restore --staged "file"
    modified 상태라면 git restore "file"을 입력하면,

변경사항 이전으로 상태를 되돌린다.

  • git commit

파일을 staging 했다면, 이제 commit을 해야한다.
staging 상태에서 git commit "commit name"을 사용하면 commit 되지않는다. 이때는 -m라는 명령어가 필요하다.

git commit -m "commit name"을 입력하면 commit이 되었다는 것을 확인 할 수 있다.

git log를 활용하면, commit이 생긴것을 확인할 수 있다.
※git log : 그래프를 보여줌.

  • git branch
    git branch는 branch를 만들 수 있다.
    git branch "branch name" 을 입력하면,

HEAD에 side라는 branch가 생성되었음을 확인 할 수 있다.

어제 보았던 것과 같이, -f 옵션으로 branch를 강제 이동할 수 있다.
git branch -f "branch name" "이동할 곳"을 입력하면,

side 라는 branch가 5db9e98이라는 commit으로 이동했음을 확인 할 수 있다.

  • git checkout
    git checkout은 HEAD를 특정 위치로 이동시키는 명령어이다.
    git checkout "해시값"을 입력하면,

    HEAD가 이동했다. 혹은 branch로 이동한다면,


이렇게 브랜치로도 이동할 수 있다.

-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된 것을 확인 할 수 있다.

  • git revert
    reset은 commit 이전 상태로 아예 third commit를 없는 상태로 만드는데, 이는 위험한 상황을 초래할 수도 있다. 노력을 쏟은 작업물들을 아예 없애는 것이기 때문이다.
    이 때는 revert로 다른 commit을 새로 만들어 주는데,

    HEAD^2로 HEAD의 두번째 부모를 revert해주면, conflict 경고문과 계속 할 것인지, 건너뛸 것인지에 대해 선택하라고 한다.

--continue 해주고, commit 해주면, merge complete라는 commit 아래에 revertCommit이 생기고 main과 HEAD가 이동한 것으로 성공적으로 revert된 것을 확인 할 수 있다.

  • git rebase
    앞에서 git merge로 두 commit을 합쳐보았는데, commit을 복사하여 붙여넣는 rebase도 있다.

side라는 branch를 복사하여 main 밑으로 붙여넣기위하여, git rebase main side를 입력하였고, merging할 때와 같이 conflict가 발생한다. 이를 바꾸어주고, --continue 명령어를 이용하면,

위와같이 rebase 된 것을 확인 할 수 있다.

  • git cherry-pick
    git cherry-pick으로 원하는 commit만을 복사하여 붙여넣는 것도 가능하다.

위의 commit tree에서 HEAD 밑으로 세개의 commit을 하기위하여 명령어를 입력하였고,

3개의 commit을 cherry-pick 했으므로, 세번의 --continue를 거치고, merging할 때와 같은 conflict 경고문이 뜨면 merging, rebase때와 마찬가지로 해결해주면 된다.

temp의 conflict를 해결하고 commit 해주면,

아래와 같이 cherry-pick이 성공했음을 보여준다.

  • git tag
    git tag는 특정 위치에 특정 내용을 기재하여 branch처럼 참조가 가능하다.

    git tag "firstTag"로 tagging을 해주면, 현재 HEAD의 위치에 Tag가 생긴것을 확인 할 수 있다.
profile
개발자되기 대작전

0개의 댓글