아래는 원격 저장소에 있는 브랜치를 확인하고 특정 브랜치를 선택하는 일련의 과정입니다.
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 -m 및 git 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
이전 시리즈 보기
'문돌이 존버 > 코딩연습' 카테고리의 다른 글
파이토치(pytorch) 텐서 기본 개념 이해하기, feat. Colab (0) | 2021.01.04 |
---|---|
비전공자 문돌이가 설명해주는 Collaborative Filtering 개념, feat. Andrew Ng (0) | 2021.01.01 |
파이썬 웹크롤링(web-crwaling) 파헤치기! feat. BeautifulSoup, Selenium (0) | 2020.07.18 |
git 기본 지식 쌓기(1) (0) | 2020.07.11 |
웹스크래핑 + Tokenization + Lemmatization feat.파이썬 (1) | 2020.03.05 |