Skip to content

joosing/git-intellij-simple-qanda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

git+intellij_sized2

git-intellij-simple-QandA

동료들에게 Git 사용과 관련된 문제에 대해 비슷한 질문을 반복해서 받는 것 같습니다. 질문 받은 것들에 대해 Q&A를 간단히 정리해 둡니다. 저장소는 다음과 같은 지향점을 가지고 정리하였습니다.

  1. Git 사용중 마주하는 문제를 중심으로 해결 방법을 간단히 기술합니다.
  2. Git의 개념과 원리에 대한 설명은 최소화합니다. (정리하고 보니 충돌 카테고리 외에는 개념 설명이 없습니다)
  3. IntelliJ 기반 GUI 사용법을 설명합니다. (git command도 시간이 되면 정리하고 싶습니다)

버전활용

Q : A소스 코드 N라인 누가 마지막에 수정한거지? blame
Q : 특정 브랜치의 커밋을 마스터 브랜치로 가져오고 싶어요 cherry pick
Q : 특정 커밋에서 발생한 변경사항을 다른 브랜치로 옮기고 싶어 patch

충돌

Q : 충돌이 왜 나는 거야? conflict
Q : 그래서 충돌은 어떻게 해결해? resolve

돌아가기

Q : 지금 뭔가 잘못 코딩하고 있는 것 같아. 직전 커밋 상태로 깨끗하게 돌리고 싶어. roll-back
Q : 특정 커밋의 변경사항을 되돌려야 하는데, 다음에 다시 사용하게 이력은 남기고 싶어 revert
Q : 뭔가 완전히 잘못되었어! 브랜치를 특정 커밋 지점으로 완전히 돌아가고 싶어! 커밋된 변경도 다 삭제하고 싶어! reset --hard
Q : 브랜치를 특정 커밋 지점으로 돌리면서, 해당 커밋 이후에 발생한 변경 사항들은 워킹 디렉토리에 유지하고 싶어. reset --soft
Q : Reset 후 원격 저장소에 Push 하면 Push Reject 되네. Merge나 Rebase 하면 자꾸 Reset한 걸 다시 가져와... 내걸로 원격 저장소를 덮어쓰고 싶은데 push --force
Q : 마스터 브랜치에 실수로 Merge 를 해버렸어. 깔금하게 Merge 이전으로 돌리고 싶은데?
Q : Amend 해서 하나로 합치기 전으로 다시 돌아가고 싶은데? reflog
Q : 특정 경로에 있던 파일이 보이지 않아요? 실수로 삭제(또는 이동)된 것 같아요. 어느 커밋에서 삭제된 걸까요? log --name-status revert

버전관리

Q : 지금 개발중이라 빌드가 안되는 상태인데, 잠시 다른 브랜치로 이동해서 작업하고 싶은데, 이걸 커밋해 두기는 애매하네 어떻하지? stash
Q : 브랜치 옆에 표시되는 이 화살표는 뭐야? out-of-date

커밋관리

Q : 방금 A 커밋을 생성했는데, 코드를 조금 수정해서 커밋 A 에 포함시키고 싶어 amend