본문 바로가기

문돌이 존버/코딩연습

git 기본 지식 쌓기(2)

반응형

아래는 원격 저장소에 있는 브랜치를 확인하고 특정 브랜치를 선택하는 일련의 과정입니다.

git init 
git remote add origin "YOUR ADDRESS"
git remote update # 모든 브랜치 확인
git checkout -t origin/"BRANCH NAME" # 특정 브랜치 가져오기

원격 저장소에 잘못 업로드된 폴더나 파일을 삭제할 때는 아래 명령어를 사용합니다.

git rm -r --cached {폴더 or 파일 이름}

원격 저장소가 아닌 로컬 저장소에 있는 폴더나 파일을 삭제할 경우 아래 명령어를 사용합니다.

git rm {폴더 혹은 파일 이름}

이렇게 한 이후에는 git commit -mgit push -u 까지 해주면 성공적으로 폴더나 파일이 삭제될 것입니다.


다른 사람들과 공동 작업을 하다보면 아래와 같은 경고 메시지가 뜨는 것을 발견할 수 있습니다.

"warning: CRLF will be replaced by LF in some/file.file. The file will have its original line endings in your working directory."

해당 문제는 맥 또는 리눅스를 쓰는 개발자와 윈도우를 쓰는 개발자가 git으로 협력할 때 발생하는 whitespace 문제입니다. 유닉스 시스템에서는 한 줄의 끝이 LF(Line Feed)로 이루어지는 반면, 윈도우에서는 줄 하나가 CR(Carriage Return) LF(Line Feed), 즉 CRLF로 이루어지기 때문입니다. 따라서 어느 한 쪽을 선택할지 git이 혼란스러워하는 것입니다.

git은 이를 자동 변환해주는 core.autocrlf 라는 기능을 가지고 있는데, 이 기능을 켜주면 위의 문제를 해결할 수 있습니다.

git config --global core.autocrlf true

git commit 메시지를 수정할 때는 아래의 명령어를 사용합니다. commit을 수정할 수 있는 창이 뜨면 수정한 이후에 esc -> :wq 를 눌러 저장하면 됩니다.

# 가장 최근의 commit 메시지 수정
git commit --amend

더 이전에 commit한 내용을 수정하려면 먼저 log 내용을 확인해줍니다. 과거에 commit한 내용이 너무 많으면 최근 n개의 commit 만을 볼 수도 있습니다.

git log

# 최근 2개의 commit 보여주기
git rebase -i HEAD~2

위의 화면에서 수정하고 싶은 commit 옆의 pick 이라는 문구를 reword 로 바꿔주면 됩니다(바꾸고 싶은 commit에만 해당합니다). 마찬가지로 esc -> :wq 를 통해 저장하면 2개의 commit을 각각 수정할 수 있는 창이 순서대로 나타납니다. 원하는대로 commit을 수정하고 :wq 로 저장하시면 됩니다.


git status를 확인할 때 간혹 untracked files 목록이 보일 때가 있습니다. 이는 로컬저장소 파일이나 폴더를 삭제했거나 원격저장소의 파일 및 폴더만 삭제할 경우에 그렇습니다.

이 경우 정말 필요없어진 파일이나 폴더라면 완전히 지워주어야 합니다. 다만, 추적이 안되는 상황이기 때문에 단순히 git rm 파일명 으로는 해결할 수 없습니다.

git clean -f {파일명}

파일이 들어있는 폴더(디렉토리)도 함께 지우려면 git clean -fd 명령어를 입력하시면 됩니다. 추적하지 않는 파일이나 폴더를 지우는 것이므로 실수하면 작업 중인 파일도 날릴 수 있습니다. 아래 명령어로 지워질 파일을 미리 확인할 수 있습니다.

git clean -fd --dry-run
참조
https://velog.io/@mayinjanuary/git-%EC%BB%A4%EB%B0%8B-%EB%A9%94%EC%84%B8%EC%A7%80-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0-changing-commit-message
https://blog.outsider.ne.kr/1164
이전 시리즈 보기
 

git 기본 지식 쌓기(1)

git의 기본 구조는 아래와 같습니다. Working Directory는 본인이 작업하고 있는 공간이며, .git directory 에 파일을 업로드하기 위해선 Staging Area 를 거쳐야 하죠. 항상 파일 업로드는 Working Directory ->..

moondol-ai.tistory.com

728x90
반응형