본문 바로가기

개발 관련/git

(16)
git blame - 코드 수정 내역 확인하기 ✔️ git blame 특정 파일에 기록된 코드의 작성자를 확인하고 싶다면 다음과 같은 형식으로 명령을 입력한다. git blame [파일 이름] git blame ctrl.py git blame을 입력시 작성된 코드의 라인 단위로 커밋, 작성자 이름, 작성 일시가 출력된다. git log --oneline과는 다른 것을 확인할 수 있다. 또한 특정 커밋에서 파일의 작성 내역을 확인할 수 있다. git blame [커밋 해시] [파일 이름] 예를 들어 커밋 39b94d5을 기록할 때의 ctrl.py를 확인하고 싶다면, 다음과 같이 입력한다. git blame 39b94d5 ctrl.py ✔️ git blame -L 파일 내부의 코드가 길어서 일부만 확인하고 싶다면 -L 옵션을 사용해서 출력할 범위를 지정..
git status, log, show 여러가지 옵션들 정리 겸 올리는 글. 파이썬 코드로 배우는 Git & Github 참고. 📌 git status git status는 저장소 안에 있는 파일들의 상태 정보를 확인할 때 사용한다. git은 저장소에 새로운 파일이 추가되거나(Untracked), 기존 파일에 변경 사항이 생겼을 때(Modified) 자동으로 감지한다. ✔️ git status -s(;--short) -s나 --short 옵션은 상태 정보를 간결하게 출력해준다. git status -s 앞의 ?? 는 파일의 상태를 식별할 수 있는 문자다. ?? : Untracked M : Modified MM : 파일이 스테이징된 후, 다시 Modified A : 경로가 스테이징된 후, 경로 내에 Untracked 파일 발생 📌 git log..
git subtree를 이용해 github 정리하기 별로 중요한 것도 없는데 늘어나기만 하는 레파지토리가 신경 쓰였다. 더 늘어나기 전에 카테고리별로 정리를 하고 싶어서 subtree를 이용해 정리를 하고자 했다. 💡 HOW TO? 1. 일단 합치고자 하는 부모 repository를 만든다. 참고로 빈 레파지토리에서 진행을 하려니 오류가 나서 README.md 파일을 생성하고 시작했다. 2. 새로 만든 부모 repository의 url을 복사한 후, git clone을 통해 내 local에 받는다. git clone {새로 생성한 repository 주소} 3. 부모 레파지토리에 넣어줄 자식 레파지토리의 주소를 복사한 후, git remote add로 부모 레파지토리에 연결해준다. git remote -v로 연결이 잘 되었는지 확인해준다. git remo..
error: read error while indexing ./gradle/5.2.1/executionHistory intelliJ에서 gradle로 프로젝트를 생성하고 github에 커밋하는 도중 다음과 같은 오류가 발생했다. 해석해보면 ./gradlew을 실행할 수 있는 권한이 없어서다. 그래서 다음과 같이 해결했다. ./gradlew clean build -x test 위 명령어를 해당 디렉터리 터미널에서 입력 후, chmod 명령어로 권한을 부여했다. chmod +x ./gradlew 잘 해결된 것을 확인했다. 참고 : https://stackoverflow.com/questions/17668265/gradlew-permission-denied gradlew: Permission Denied I am attempting to run gradlew from my command line, but am constan..
원격 브랜치 정보 갖고 오기 - git fetch fetch는 불러오다, 가져오다 라는 뜻으로 git fetch 명령은 원격 저장소의 정보를 가져오는 기능이 있다. git fetch fetch로 가져온 최신 정보는 origin/master 브랜치가 아닌 FETCH_HEAD 브랜치로 가져옴 브랜치로 가져온 정보는 지역 저장소에 바로 반영되지 않음 fetch로 가져온 최신 커밋 확인 git checkout FETCH_HEAD 지역 저장소의 최신 커밋과 fetch한 커밋의 차이 비교하기 git diff HEAD origin/master
HEAD -> master, origin/master의 의미 💡 HEAD -> master, origin/master의 의미 다음은 git log --oneline을 입력했을 때의 결과 창이다. git log --oneline 이 때, 맨 위의 HEAD -> master, origin/master와 같은 로그의 의미는 뭘까? 간단하게 말하자면 다음과 같다. HEAD -> master : 이 커밋이 지역(local) 저장소의 최정 커밋 origin/master : 원격(remote) 저장소의 최종 커밋 다음 로그는 f3.txt를 생성하고 commit까지는 했지만, 원격 저장소에 push하기 전 상태에서 확인한 것이다. 지역 저장소의 최종 커밋은 HEAD -> master를 가리키지만, 원격 저장소에는 push가 안되었기에 마지막으로 올라간 [add d]를 가리키고 ..
브랜치(git branch) - 병합(git merge) git init {directory name} git init 다음에 디렉터리 이름 입력 시, 새로운 디렉터리를 만들고 저장소를 초기화하는 과정을 한꺼번에 처리 가능 git checkout master 브랜치를 병합하려면 master 브랜치로 체크아웃 병합하기(git merge) git merge {branch name} branch name에 기재된 branch와 master 브랜치와 병합 # 커밋 메시지 추가 및 수정 git merge {branch name} --edit git merge {branch name} --no-edit 브랜치 병합 시 편집기 창이 열리지 않게 하는 명령어 깃에서는 병합 시 브랜치를 자동으로 합쳐주는 기능이 있음 충돌 발생 시 해결하기 master 브랜치와 다른 브랜치에 ..
브랜치(git branch) - 생성 및 조회 새로운 브랜치 만들기 브랜치 조회하기 git branch 브랜치 생성하기 git branch {branch name} - HEAD는 작업 중인 브랜치를 가리키는 포인터 브랜치 사이 이동하기 git checkout {branch name} 브랜치에서 브랜치 이동할 때 사용 master 브랜치에 추가된 커밋은 다른 브랜치에 영향을 미치지 않음 커밋 확인(git log) git log --oneline 각 브랜치의 커밋을 함께 볼 수 있는 명령어는 다음과 같음 git log --oneline --branches 브랜치와 커밋의 관계를 그래프 형태로 표시 git log --oneline --branches --graph 브랜치 사이의 차이점 확인 git log master..{branch name} - mast..