git 사용하기
커밋의 최소 규정과 커밋 사이즈의 약속이 필요하다.
C:\Users\back8>cd Documents
C:\Users\back8\Documents>cd gitTest
C:\Users\back8\Documents\gitTest>git init // .git 폴더가 생성된다..
C:\Users\back8\Documents\gitTest>git config --global user.name "aaa"
C:\Users\back8\Documents\gitTest>git config --global user.email "aaa@naver.com"
C:\Users\back8\Documents\gitTest>git config --global --list // user 확인
user.name=aaa
user.email=aaa@naver.com
git --help
git commit -h // commit 명령어에 대한 설명 보기
HEAD |
현재 보고있는 commit |
reset, revert로 이전 커밋으로 돌리기
1. reset
git show HEAD // 최근 커밋에 대한 상세 정보 보여줌(head 가능)
git log
git log --oneline // 최신 10개정도?
git reflog // 모든 커밋 로그 확인
git reset <옵션> <돌아가고싶은 커밋hash>
git reset HEAD~6 // 현재부터 6개 이전 이력으로 돌아가라
git reset --soft HEAD~1
- 혼자만 사용하는 브랜치인 경우
- origin에 있지만 아무도 이 브랜치를 사용하지 않는다는 확신을 가지는 경우
--mixed 와 --soft 의 차이점은 인덱스도 수정되었는지 여부임 |
|
--hard ( 주의 ) | git reset --hard "검색" 돌아가려는 이력이후의 모든 내용을 지워 버립니다. |
--soft | 돌아가려 했던 이력으로 되돌아 갔지만, 이후의 내용이 지워지지 않고, 해당 내용의 인덱스(또는 스테이지)도 그대로 있습니다. 바로 다시 커밋할 수 있는 상태로 남아있는 것입니다. |
--mixed ( 옵션을 적지 않으면 mixed로 동작 ) | 이후에 변경된 내용에 대해서는 남아있지만, 인덱스는 초기화 되어 커밋을 하려면 다시 변경된 내용은 추가(add .)해야 하는 상태입니다. |
2. revert
커밋을 삭제하는 것이 아닌 커밋을 추가
Staging Area에 추가
git add 파일명
git add 파일명1 파일명2
git add 폴더이름 // 지정된 폴더 내의 모든 파일 추가
git add* // 현재 폴더에 있는 모든 파일 또는 폴더 추가
git add -u // 커밋한 적이 있는 모든 파일 추가(커밋 이력 필요)
Staging Area에서 삭제
git rm --cached 파일명
git reset 파일이름
git reset // 현재 폴더의 모든 폴더, 파일을Staging Area 에서 삭제
Working Directory 와 Staging Area 상태 확인
git status
커밋 생성
git commit -m "init commit"
커밋 수정
git commit --amend //최근 커밋 내역을 볼 수 있다.(커밋 메시지 수정가능)
git commit --amend -sm "변경된 메시지" // 커밋 메시지 수정
취소커밋 생성
git revert HEAD // 최근 커밋을 취소하는 새로운 커밋을 생성
실습
bbb.txt 와 ccc.txt를 생성하고 각각 add 하고 commit 한다
그다음 bbb.txt 와 ccc.txt 를 reset 두번 하고 한번에 commit
Branch 이동
Branch merge
=== main 브렌치를 dev와 merge ===
git checkout dev
git merge main // 그냥 merge
// fast-forward merge ( 전진, 커밋x )
git merge dev --ff
// fast-forward merge ( 전진, 무조건 새로운 커밋이 만들어짐 )
git merge dev --no-ff
Branch 충돌
git 에서 표시된 충돌파일을 수정하고 저장한다음 git add aaa.txt 하고 merge 시도
git merge --abort // 충돌난 머지 취소
git merge --continue // 계속하기
merge 하면 메인은 수정된 것을 보고있고 dev 는 수정전것을 보고 있으므로
dev의 HEAD 를 머지된 곳으로 이동 시켜서 작업 해야 한다.
git checkout dev
git merge main // 그냥 merge
reset 은 HEAD 와 branch 가 함께 이동
checkout 은 HEAD 만 이동
Github 에 프로젝트 공유하기
Commit 이력 확인
branch 만들기
Git ignore 설치 / Git ignore에 의해 관리 안되는 파일은 붉은 표시
Git ignore 파일 만들기
협업 사용자 추가
branch 충돌 추의하기