master→ main
혼자 코딩을 하는 동안에는 branch를 변경할 일이 잘 없어서 master 브랜츠의 디폴트 이름이 main으로 변경된 것을 뒤늦게 접했다.
작년 10월 guthub에서는 Black Lives Matter 운동의 일환으로 디폴트 브랜치 이름을 main으로 변경하기로 발표했다. master-slave라는 인종차별적인 용어가 main-secondary라는 중립어로 대체되었다는 반가운 소식. 지난달 정보처리기사 공부를 하다가 마스터/슬래이브 구조라는 용어를 보고 이런 구시대적 용어라니 새삼 프로그래밍의 역사가 오래 되긴 했구나...라는 생각을 했었는데. 세상은 느리지만 확실하게 변하고 있구나!
GitHub Abandons 'master' Term to Avoid Slavery Row
git add
새로 만들어진 git 레포지토리에 다음과 같이 .gitignore
, altStyle.css
, index.html
, script.js
, style.css
, test.js
6개의 파일이 있고, 이 중 test.js
는 .gitignore
에서 제외시키고 있다.
다음과 같이 .gitignore
, altStyle.css
, index.html
, script.js
, style.css
다섯 개의 untracked된 파일을 commit하려고 한다.
git add .
.
)에 있는 모든 파일을 staging area에 추가.gitignore
에서 제외시킨 파일은 추가되지 않는다.git add *
.
으로 시작하는 파일/폴더)를 제외한 모든 파일을 staging area에 추가.gitignore
에서 제외시킨 파일도 추가하려 하기 때문에 다음과 같은 메시지가 뜬다: The follwing paths are ignored by one of your .gitignore files ... Use -f if you really want to add them. 메시지에서 시킨 대로 -f
옵션을 붙이면 .gitignore
에서 제외시킨 파일도 추가된다.*
은 패턴 매칭 wildcard로 0 또는 1이상의 글자가 있음을 말한다. 예를 들어 git add *.css
라고 쓰면 *.css
패턴의 파일이름을 가진 모든 파일을 추가하게 된다.처음 새로 생성된 다섯개의 파일을 모아 initial commit을 한 후 index.html
와 style.css
에 수정 사항이 생겼고, contact.html
이라는 파일이 새로 생성되었다.
git add -u
git add -p
git status
vs git diff
git diff
: commit된 파일 vs 현재 상태git diff --staged
: commit된 상태 vs staged된 상태git diff <commit1-id> <commit2-id>
: 두 개의 commit을 비교git diff <branch> <branch2>
: 두 개의 브랜치를 비교git restore
restore
는 현재 작업 중인 파일(non-commited)을 되돌린다.git restore <file-name>
: 해당 파일에서 수정된 내용을 삭제하고 이전 상태(가장 최근 commit)로 되돌린다.git restore --staged <file-name>
: staged된 상태에서 unstaged 상태로 되돌린다.