Mr.공 2024. 11. 5. 14:20

Git을 사용함에 있어 유용한 것들을 정리해 본다.

 

  1. git diff 시에 특정 폴더 혹은 파일을 제외하고 보고 싶을 때
    • git diff ":(exclude)제외하고자하는 폴더, 파일의 글자"
    • 즉, git diff 이후에 " " 사이에 제외하고자 하는 폴더의 특정 글자를 적고
      해당 글자 앞에 세미콜론(:)과 '(exclude)' 를 (괄호도 포함) 넣는다. 
    • 예를 들어 deprecated 라는 글자가 있는 폴더는 제외하고 그외 폴더의 diff만 보고 싶다면
    • git diff ":(exclude)*deprecated*"  라고 하면 된다.
    • (exclude) 대신에 ^를 사용해도 된다. -> git diff ":^* deprecated*" 도 가능
  2. 10/11일 main 브랜치로 부터 1011base_local 이라는 이름의 로컬 브랜치를 만들어고
    해당 로컬 브랜치에서 나의 commit들을 올린 상황에서 10/15일(최신) base 로 가고 싶을 때.
    단, 로컬 브랜치에서 작업한 commit 내용은 그대로 10/15 base의 main commit 위에 올리고 싶을 때
    • 일단 git checkout <브랜치 이름>을 사용해서
      main 브랜치(부모 브랜치, 혹은 로컬 브랜치가 나오기전 브랜치)로 이동한다.
      git checkout main (위 예에서 1011base_local 이름의 브랜치는 main 브랜치에서 나왔기 때문에)
      만약 부모 이름의 브랜치가 master라면 git checkout master이어야 한다.
      참고로 git checkout <브랜치 이름> 전에 git status로 현재 작업하던 내용은 모두 commit으로 만들어 놔야 한다. (diff상태로 있으면 안됨)
    • git pull
      최신 소스로 땡김 (여기선 10/15일자 소스로 떙김)
    • git checkout <작업하던 로컬 브랜치>를 사용해서 작업하던 commit이 있던 브랜치로 이동한다.
      git checkout 1011base_local
    • git rebase <가져오고 싶은 소스의 브랜치, 주로 부모 브랜치>
      git rebase main (10/15일자 소스까지 올린 main 브랜치의 commit들을 현재 1011base_local 브랜치로 가져온다.)
    • 이때 만약 내가 작업한 commit과 main brach commit간 충돌(conflict)이 난다면 그건 직접 해결해서 다시 commt을 올려야 한다.
  3. git status 에 Untracked files인 파일을 git diff로 보고 싶을 때
    1. git add -N <Untracked files> 을 하면 git status 시 new file로 올라온다.
    2. git diff해서 보면 된다.