즐겁게 하하하 2022. 4. 6. 12:15
728x90

커밋의 최소 규정과 커밋 사이즈의 약속이 필요하다.

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 충돌 추의하기

728x90