[TIL] Git - 왜 Github의 master 브랜치는 main 브랜치가 되었을까?

Alex J. Lee·2021년 9월 2일
0

TIL

목록 보기
9/58

Black Lives Matter

mastermain

혼자 코딩을 하는 동안에는 branch를 변경할 일이 잘 없어서 master 브랜츠의 디폴트 이름이 main으로 변경된 것을 뒤늦게 접했다.

작년 10월 guthub에서는 Black Lives Matter 운동의 일환으로 디폴트 브랜치 이름을 main으로 변경하기로 발표했다. master-slave라는 인종차별적인 용어가 main-secondary라는 중립어로 대체되었다는 반가운 소식. 지난달 정보처리기사 공부를 하다가 마스터/슬래이브 구조라는 용어를 보고 이런 구시대적 용어라니 새삼 프로그래밍의 역사가 오래 되긴 했구나...라는 생각을 했었는데. 세상은 느리지만 확실하게 변하고 있구나!

GitHub Abandons 'master' Term to Avoid Slavery Row


Today I Learned

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.htmlstyle.css에 수정 사항이 생겼고, contact.html이라는 파일이 새로 생성되었다.

git add -u

  • modified된 파일, deleted된 파일을 staging area에 추가한다. 새로 생성된 파일은 추가되지 않는다.

git add -p

  • 변경사항을 파일이 아닌 hunk단위로 보여주며 staging area에 추가할지 y/n로 물어본다. 변경사항을 다시 하나씩 보며 원하는 부분만 staging할 수 있다.

git status vs git diff

  • status는 다음 commit에 포함될 staged된 파일과 staged되지 않은 modified 파일, untracked 파일을 구분하여 보여준다.

  • diff는 파일 내부에 어떤 내용이 변경되었는지 보여준다.
    • git diff : commit된 파일 vs 현재 상태
    • git diff --staged : commit된 상태 vs staged된 상태
    • git diff <commit1-id> <commit2-id> : 두 개의 commit을 비교
    • git diff <branch> <branch2> : 두 개의 브랜치를 비교

git restore

  • Git 2.23부터 도입된 restore는 현재 작업 중인 파일(non-commited)을 되돌린다.
    • git restore <file-name> : 해당 파일에서 수정된 내용을 삭제하고 이전 상태(가장 최근 commit)로 되돌린다.
    • git restore --staged <file-name> : staged된 상태에서 unstaged 상태로 되돌린다.
profile
🦄✨글 잘 쓰는 개발자가 되기 위해 꾸준히 기록합니다 ✨🦄

0개의 댓글