ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • GIT 자주 사용하는 명령어
    환경구축 2023. 2. 7. 00:40

    git을 사용하다보면 사실 몇개 쓰지 않는다.

    당연히 문제가 생기면 많은 명령어를 사용하지만 여기 적힌것만 알면 되는것 같기는하다.

     

    1. git clone

    예 git clone https://github.com/autonomousvision/transfuser.git

    - 저장소 받을때 사용함.

     

    2. git pull

    - 최신 코드를 가져와서 merge함. 그러나 이 경우 잘못하면  conflict 날 수 있음.

    이럴때는 아래 처럼 하면됨.

     

    3. git checkout -B master origin/master

    git checkout -B <my branch name> origin/<remote branch name>

    이렇게 하면 remote에 있는 branch를 가져와서 overwrite함.

     

    4. git reflog

    - 내가 사용한 명령어로 되돌아가고 싶을때 사용.

    - git은 내가 commit을 하던지 명령어를 치면 대부분 다 기억하고 되돌아갈 수  있음. 

    - 쳐보면 알수있음.

    -되돌아 갈때는 아래 명령어를 사용하면됨.

     

    5. git reset --hard HEAD@{1} 

    - git reset --hard xxxx을 하면 xxxx한것으로 갈 수 있음.

     

    6. git log 

    - 단 축키를 설정해서 git lg 로 사용함.

     

    7. git status

    - 상태를 보기위해서 사용함.

    - git st 로 사용함.

     

    8. git commit --amend

    - commit을 잘못했을때 --amend 명령을 사용해서 하면 commit이 증가하지 않고 overwrite이 됨.

    - 단 push를 할때 강제로 해줘야함. git push -f  로...

     

    9. git push 

    - remote에 내가 add 한 파일만 올리는것임.

     

    10. git pull --rebase origin xxxxxx

    - 이 명령어는 매주 중요한 명령어임. 

    - 사용 목적은 만일 내가 master에서 branch를 만든 후 commit을 했는데 

    master가 업데이트 되어서 업데이트 된 내용을 branch에 업데이트하고 싶다면

    위 코드를 사용해야함.

    절차는 아래와 같음.

    git pull --rebase origin master

    충돌 나면 수정 후 

    git add <file name>

    git rebase --continue

    다시 충돌 나면 수정 후

    git rebase --continue....

    여기서 gitlens를 사용한다.  visual studio code에 깔린 gitlens를 이용하면

    충돌 수정 및 add까지는 쉽게 할 수 있다.

    rebase 전 rebase 후
    <master>
    |      


    a   
    |      <branch>
    a1     b1
    |         |
    a2 - - b
    <master>
    |   <branch>
    |      b1   

    |       |
    a - - b
    |
    a1
    |         
    a2 

    11. git stash / git stash list 

    임시로 저장하고 싶을때는 git stash 

    임시 저장 리스트를 보고 싶을때는 git stash list 

    가져오면서 삭제할때는 git stash pop

    가져오고 유지하고 싶을때는 git stash apply

    수정된 파일 보고 싶으면 git stash show

    이렇게 사용하면 됨.

    git stash --help 치면 잘 나와 있음.

    해당 commit 은 git reset --hard stash@{0} 으로 해도 됨.

     

    12. git patch 기능

    수정사항이 생겼을때 파일을 전달할 수도 있지만 diff 만 들어 있는 patch를 적용해서 줄 수 도 있다.

    • 12-1 patch 파일 만들때
    git diff --no-prefix > [patchfile]

     

    • 12-2 적용할 때
    patch -p0 < [patchfile]

    이런식으로 사용하면됨.

     

    13. vim 을 기본 에디터로 사용

    git config --global core.editor "vim"

    위에 적은 내용 정도만 사용하면 git 사용하는는데 지장 없어 보임.

     

    14. visual studio code를 diff로 설정하기

    출처 : https://medium.com/@hohpark/vs-code%EB%A5%BC-git-diff-tool%EB%A1%9C-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0-88baa1d9f2b3

     

    VS Code를 Git diff tool로 설정하기

    이번 포스팅 에서는 VS Code를 git difftool로 설정하는 방법에 대해서 설명합니다. Mac을 기준으로 설명하지만, Windows, Linux에서도 크게 다르지 않습니다.

    medium.com

    가장 좋은것은 beyod compare 인것 같지만 유료이기 때문에 무료로 쓸수 있는것은 vscode를 쓴것이 좋은것 같다.

    [diff]
        tool = default-difftool
    [difftool "default-difftool"]
        cmd = code --wait --diff $LOCAL $REMOTE
        
    [merge]
        tool = vscode
    [mergetool "vscode"]
        cmd = code --wait $MERGED

     

    #### 결론 ####

    위처럼 셋팅을 하면  아래 같은 ~/.gitconfig는 아래와 같은 포멧을 가짐.

    [alias]
            lg = log --oneline -5 --pretty=format:"%C(yellow)%h\\ %C(black)%ad%C(red)%d\\ %Creset%s%C(blue)\\ [%cn]" --decorate --date=relative
            st = status
            co = checkout
    [user]
            name = user name
            email = user@example.com
    [core]
            editor = vim
    
    [diff]
        tool = default-difftool
    [difftool "default-difftool"]
        cmd = code --diff $LOCAL $REMOTE
    
    [merge]
        tool = default-mergetool
    [mergetool "default-mergetool"]
        cmd = code --wait $MERGED

     

    반응형

    '환경구축' 카테고리의 다른 글

    환경 구축 category 의 목적....  (0) 2023.02.11
    conda 설치  (0) 2023.02.11
    nvidia-driver, cuda-driver,pytorch 설치  (0) 2023.02.11
    리눅스 화면 캡쳐  (0) 2023.02.11
    GIT 환경구축  (0) 2023.02.06
Designed by Tistory.