반응형
git commit -a
- 기본적인 Git 워크 플로우 : make changes -> stage them -> commit them
- 현재 변경 사항이 커밋하고자 하는 것이면 스테이징 단계를 건너뛰고 직접 커밋할 수 있다.
- 추적된 파일의 변경 사항을 스테이징하고 한 번에 커밋 => git add 단계를 건너뛴다.
- 스테이징 영역을 건너뛰므로 커밋을 생성하기 전에 다른 변경 사항을 추가할 수 없기 때문에 해당 커밋에 포함하고자 하는 모든 내용을 이미 포함했는디 확인해야한다.
- 새로운 파일에서는 작동하지 않는다.(추적되지 않기 때문)
head
- Git은 head 별칭을 사용하여 현재 체크아웃된 커밋을 가리키는 포인터
- 작업 디렉토리의 내용이 무엇이어야 하는지를 알려준다,
git log
- 기본적으로 커밋 메시지, 작성자, 변경 날짜를 출력한다.
- -p : 생성된 패치를 볼 수 있다.
- 형식은 diff -u 출력과 동일하다.
- 추가된 줄 : 플러스(+), 제거된 줄 : 마이너스(-)
- --stat : 커밋에 반영된 파일과 추가되거나 제거된 줄의 수와 같은 변경 사항에 대한 통계를 보여준다.
git show
- 커밋 ID를 매개변수로 받아 커밋 정보와 관련된 패치를 표시한다.
git add -p
- 스테이징하기 전에 변경 사항 검토
- 추가되는 변경 사항을 보여주고 스테이징할지 여부를 묻는다.
git diff
- 기본적으로 스테이징되지 않은 변경 사항만 보여준다.
- --staged : 스테이징되었지만 커밋되지 않은 변경 사항을 볼 수 있다.
- diff -u 출력과 동일하다.
- 추가한 줄이 유일한 변경 사항임을 알 수 있다.
- 변경 사항이 더 크고 여러 파일을 포함하는 경우, 파일을 매개변수로 전달하여 모든 파일을 한 번에 보는 대신 해당 파일과 관련된 차이점을 볼 수 있다.
파일 삭제하기
- git rm 명령어를 사용하여 파일을 리포지토리에서 제거할 수 있다.
- 일반적으로 Git 워크플로우를 따르기 때문에, 삭제 이유를 설명하는 커밋 메시지를 작성해야 한다.
- git status로 상태를 확인할 수 있다.
파일 이름 변경하기
- git mv 명령어를 사용하여 파일 이름을 변경할 수 있다.
$ git mv old_script.py check_free_space.py
$ git status
On branch main
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: old_script.py -> check_free_space.py
.gitignore 파일
'git status'의 출력은 파일 상태를 파악하는 데 유용하지만 자동으로 생성되는 파일이나 운영 체제가 생성하는 아티팩트가 많다면 중요한 변경 사항을 놓칠 수 있다. 이러한 파일들을 무시하기 위해 .gitignore 파일을 사용할 수 있다.
- 현재 레포지토리에서 건너뛰어야 할 파일에 대한 규칙을 지정한다.
e.g) OSX 컴퓨터에서 작업하는 경우 운영 체제가 자동으로 생성하는 '.DS_Store' 파일을 무시하고 싶다면, .gitignore 파일에 다음과 같이 추가한다.
.DS_Store
$ echo ".DS_Store" > .gitignore
$ git add .gitignore
$ git commit -m "Add .gitignore to ignore .DS_Store files"
[main abcdefg] Add .gitignore to ignore .DS_Store files
1 file changed, 1 insertion(+)
create mode 100644 .gitignore
=> 이렇게 하면 '.DS_Store' 파일이 더 이상 추적되지 않으며, 'git status' 출력에 방해가 되지 않는다.
반응형
'Git&GitHub' 카테고리의 다른 글
Introduction to Git and GitHub - 모듈 2(Branching and Merging) (0) | 2024.06.24 |
---|---|
Introduction to Git and GitHub - 모듈 2(Undoing Things) (0) | 2024.06.24 |
Introduction to Git and GitHub - 모듈 1(Using Git) (0) | 2024.06.23 |
Introduction to Git and GitHub - 모듈 1(Version Control Systems) (0) | 2024.06.23 |
Introduction to Git and GitHub - 모듈 1(Before Version Control) (0) | 2024.06.23 |