2022년 6월 13일 월요일

[git] git 정리

 ~ 

git 설치후, CMD 에서 git 사용가능



~ 버전확인

git --version :  깃버전확인



~ 환경설정

git config --global user.name [깃허브이메일아이디]

git config --global user.email [깃허브이메일주소]



~ 폴더생성



~ github 프로젝트 저장소 복사

git clone https://github.com/[깃아이디]/[프로젝트명.git]



~ 사용명령

git status : 현재 스테이징에어리어의 상태 보기

git add . : 현재 위치한 곳의 모든 파일 추가

git checkout -- [파일명] :  수정한파일이원래상태로 되돌릴수있다.

git commit -m 'msg' : commit 및 commit 메시지 입력

git commit --amend : commit 메시지 수정가능

git reset --hard [commit hash값] : 특정 commit 위치로 변경(특정 위치 이후 commit은 모두 삭제), 로컬만해당

=> 원격지도 동기화하려면 : git push -f (-f옵션은 강제)

=> git --soft 도있음..

git log : 커밋이력을 확인



~ 브랜치

git branch : 현재 브랜치 개수확인

~~ 브랜치 만들고 브랜치이동

git branch develop : develop 브랜치 만들기

git checkout develop : develop 브랜치로 접속 

~~ 만든브랜치에서 작업한 것을 master에 합치는방법

git checkout master : master 로 이동

git merge develop : develop 에있는 것을 master에 합치기

git push : 원격지에 반영

git log : master와  develop에 둘다 반영된것을 확인

git branch -d develop : develop 브랜치 제거

~~ 충돌처리 (동일한파일 수정시)

일반적으로병합은 마스트 브랜치에서 수행

git checkout master : 마스터로 이동

git merge develop : master에 develop브랜치를 합치기

=> merge conflict 발생

=> 소스파일에 develop 브랜치에서 수정한것과 master 브랜치에서 수정한 코드가

모두들어가있음. 선택해서 삭제후 merge하면됨



~ git에서 원격지 저장소 관리

git remote : 원격저장소로 어떤것이 등록되있는지 확인

git remote show origin : 원격저장소 상세정보확인

git remote add test [git주소] : 원격저장소 추가

git remote -v : 전체목록확인

git remote rename [현재 git저장소 이름] [변경할 git저장소 이름] : 저장소이름변경

~~ 원격저장소에 대해 명령 사용가능

git log origin/master : origin 의 로그보기

git merge origin/master : origin의 merge 수행

git remote rm [저장소명] : 특정 저장소명을 삭제 



~ git에서 로그보기

git log : 최신순서대로 커밋내역을 볼수있음, 엔터로 내려가면서보고, 큐로 나가기

git log --stat : 커밋라인마다 얼마나추가됬는지 확인가능

git log -p -3 : 위에서 3개까지 체적인항목

git log --pretty=online : 각각의 커밋라인이 한줄마다 출력

git log --pretty=format:"%h -> %an, %ar : %s" --graph : 그래프형태로



~ git 프로젝트 소개글 : README.md

Create README.md

markdown 문법


# 큰글머리 ( #~##### : 점점 작아지는 글머리)


``` c 

```

: c언어로 표현


[블로그주소](http://naver.com) : 링크


* 가

  * 가

    * 가

: 순서없는 목록


> '공부하자' - ㅅㄷㄴㅅ - 

: 인용문


이름|ㅇㅇ|ㄹㄹ|ㄹㅇ|

---|---|---|---|

ㅁㄴㅇㄹ|1|2|2

: 테이블


**구문**

:강조


~~취소선~~

:취소선



~ git 내에 소스파일을 압축해서 내보내기

git archive --format=zip master -o Master.zip

: 압축포맷 zip, branch명 master, -o 는 output, Master.zip 은 압축파일명

Master.zip은  ../Master.zip  상대경로명으로 표기가능



~ 특정commit을 수정 : commit 제거하거나 commit message를 수정

git rebase -i HEAD~3 : 최근 커밋 3개 를 수정

git rebase -i [hash값] : 특정 커밋 해시값으로도 수정가능



~ git 환경설정

git config --list : git 의 환경설정상태

~~최초 설정시 글로벌하게 설정

git config -global user.name ""

git config -global user.email ""



~ git 커밋 날짜 변경방법

~~첫번째방법

git rebase -i 변경하려는 특정커밋의 이전 값을 선택

=> 목록에서 pick 글자를 수정 : edit

=> GIT_COMMITER_DATE="Oct 1 10:00:00 2018 +0000" git commit --amend --no-edit --date "Oct 1 10:00:00 2018 +0000"

git log 확인

git rebase --continue : 변경된 날짜 반영

~~두번째방법

git filter-branch -f --env-filter \

'if [ $GIT_COMMIT = 20435adbsadf32423421sadfafs ]

then

  export GIT_AUTHOR_DATE="Mon Oct 1 10:00:00 2018 +0000"

  exprot GIT_COMMITER_DATE="Mon Oct 1 10:00:00 2018 +0000"

fi'





* 해당 글은 유트뷰 [동빈나]링크 채널을 참고 하였습니다.