1. git 기본 실습
[유저 정보 입력]
git config --global user.name "이름"
git config --global user.email "이메일"
[Workin Directory 생성]
mkdir 혹은 gui로 파일 생성
git init
리눅스 mkdir 옵션 리눅스 디렉토리 만들기
리눅스 기본 명령어 중 mkdir 명령어는 리눅스 디렉토리(폴더) 만드는 명령어입니다. mkdir 명령어가 무엇인지 mkdir 옵션에 대한 설명과 mkdir 명령어 옵션에 대한 실제 예시와 mkdir 명령어를 잘못 실
rhrhth23.tistory.com
[파일 생성]
touch, echo 명령 혹은 gui로 직접 설정
touch 파일명
echo 작성할 내용 > 파일명
하면 생김
cat 명령어로 파일 내 내용 확인
[git 상태 확인]
git status
[Stage Area로 옮기기]
git add
git add 파일명
git add . // 전체 add (점(.)은 모든 것을 의미) //현재 디렉토리의 모든 변경 내용을 스테이징 영역으로 넘기기
git add -A //작업 디렉토리 내의 모든 변경 내용을 몽땅 스테이징 영역으로 넘기고 싶을 때는, -A 옵션
- git add -A는 작업 디렉토리 상에 어디에 위치하든 항상 동일하게 모든 변경 내용을 스테이징으로 넘김
- 반면에 git add .는 명령어를 실행한 디렉토리 이하에서 발생한 변경 내용만 포함하며, 해당 디렉토리 기준으로 상위 디렉토리의 변경 내용을 포함하지 않음
- 만약에 git add .를 프로젝트 최상위 디렉토리에서 실행한다면 git add -A와 동일한 효과를 낼 것
git add *.txt // 모든 txt 파일 업로드
git add project/app/*/ //디렉토리 업로드
git add --update // 현재 git이 추적하고 있는 파일들만 add
- https://nemomemo.tistory.com/77
- https://victorydntmd.tistory.com/73
[.git에 Log 남기기 (스냅샷)]
git commit 혹은 git commit -m "한줄 주석"
:wq 입력해서 나가기
[Log 확인]
git log
2. Working Directory 에서의 Tracking Status
git status에서 확인
- untracked - 형상 관리의 대상에서 제외된 상태 (추적 상태 X)
- traked - git이 형상 관리 대상으로 추적하고 있는 상태
+ unmodified : 수정X, 변화 X (이전 버전과 비교했을 때)
+ modifed : 수정O, 변화 O (이전 버전과 비교했을 때)
근데 의문점
.DS_Store는 맥에 기본 뭐… 설정되어있는 그런건지? 찾아봐야할듯!
3. Untrack 가 아니라 아예 무시
.gitignore : .git 디렉토리가 있는 같은 레벨의 디렉토리에 .gitignore 이름으로 생성 후
(폴더가 아닌 확장자가 없는 텍스트 파일)
- 이 문서에 폴더 혹은 파일을 한 줄씩 기입
- 이 문서에 기입된 리스트들은 git의 tracking 대상에서 제외.
--- .gitignore 예시 ------
logs
logs/*
*.py
*.class
files/*.jpg
--------------------------
4. 상태 확인(4번, 5번 리뷰)
git status --long
git status -s
git status -h
?? : Untracked
M : Modified
MM : 파일이 스테이징 된 후, 다시 Modified
A : 경로가 스테이징 된 후, 경로 내에 Untracked 파일 발생
5. 변화를 파일 별로 비교해보기
- 로컬에 있는 파일 중 변경 사항이 있는 파일 확인하기
git diff
diff --git a/c.txt b/c.txt // 여기서 a는 변경 전 / b는 변경 후를 의미
index 12a8798..8ccd933 100644
--- a/c.txt // 변경 전엔 없었는데
+++ b/c.txt // 변경 후엔 추가
@@ -1 +1,2 @@ // -1 에서 -는 이전을 의미, 1은 첫 번째 줄을 의미. +1,2 에서 +는 이후를 의미, 1은 첫 번째 줄, 2는 기준으로부터 몇 줄을 보면 된다 의미
hello world!
+adddafsdaffjskdahfaskdjfhjsdfhajskdfhak // 추가 되었단 의미고 초록색으로 표시됨
- 스테이지에 있는 파일 중 변경 사항이 있는 파일 확인하기
git diff --staged(==--cached) // 내용은 마찬가지
6. 변화를 확인했으면, stage area로 넘겨보기
git add (stage area로 넘길 대상)
git add . || git add ./* : 해당 디렉토리의 추적하는 모든 대상
git rm --cached * : 현재 stage에 올린 대상들을 다시 Working Directory 수준으로 내리기
7. 변화를 확인했으면, 스냅샷 남겨보기
git commit
git commit -m "친절한 설명"
git commit -am "add를 생략"
git status를 통해서 스냅샷을 확인.
8. log 명령에 대해 자세하게 살펴보기
git log : 기본 로그 명령
git log --patch : 수정된 파일 내용도 확인할 수 있음.
git log --oneline : 간단하게 라인 단위로
git log --oneline --reverse : 리버스 명령어로 오래된 것 부터 최신 순으로 로그를 확인.
HEAD :
A와 B 순으로 Commit 하면
A <- B 형식으로 가리키게 되는데 이 때, 기본적으로는 HEAD는 B를 가리킨다.
A, B, C, D 순으로 commit 하면,
A <- B <- C <- D 형식으로 가리키게 되는데 이 때, 기본적으로 HEAD는 D를 가리키며,
D를 HEAD, C를 HEAD~2, B를 HEAD~3, A를 HEAD~4 라고 표현함.
9. log에서 원하는 커밋 버전으로 돌아가기
git checkout [commit 버전]
10. log 심화
git log -(숫자n) # n줄
git log --oneline -3 # 3줄 one line
git log --author="username" # 특정 username 의 커밋들 보기.
git log --before="년-월-일" # 특정 날짜 이전.
git log --after="2023-09-01" # 특정 날짜 이후.
git log --grep="project" # project 가 들어간 코멘트가 있는 커밋을 찾기.
git log -S "about" -p # 해당 커밋의 내용(코드) 중 about이 들어있는 커밋 찾기. 단, p 옵션은 patch로 상세히 보는 옵션.
git log -p about.txt # 파일 별로 확인 하되, 상세하게 보기.
git log -s about.txt # 파일 별로 확인 하되, 간단하게 보기.
git log HEAD # 기존 로그와 동일.
git log HEAD~n # 헤드에서부터 n번
git show Hash_일부 # 해당 hash code의 커밋 확인.
git show Hash_일부:파일 이름 # 파일 이름에 해당하며, 해당 hash 코드에 대한 로그를 확인.
git diff hash1 hash2 # hash1과 hash2에 해당하는 커밋을 비교.
git diff hash1 hash2 파일 이름 # hash1과 hash2에 해당하는 커밋 중 특정 파일 이름에 대해서 차이점 확인.
'프로젝트' 카테고리의 다른 글
[웹 개발 환경 구축] VMware Fusion Intel칩 Mac에서 구축하기 (디스크 이미지 오류 / 공유 폴더 파일 오류 / 웹 접속 업데이트 오류) (1) | 2023.10.03 |
---|---|
[GIT] 깃 기초 개념/리눅스, 터미널 기본 명령어 - 파일 관련 (0) | 2023.08.29 |