ETL

GIT - 자주쓰는 명령어

wave35 2024. 8. 21. 00:29

[초기설정]

git init

git add .

git commit -m 'init'

github에서 프로젝트 생성

git remote add origin https://github.yoururl.000.git

git push --set-upstream origin master

 

 

[ git remote ]

git remote

- git 원격저장소[Repository] 목록 확인

 

git remote -v

- git 원격저장소 이름과 url 목록 확인

 

git remote add 저장소이름 저장소URL 

- 저장소URL의 원격저장소를 저장소이름으로 추가

 

git remote remove 저장소이름

- 저장소이름의 원격저장소 제거

 

 

[ git log / git status / git diff ]

git log

- commit 로그 확인

 

git log --pretty=format:"%h %s" --graph

- commit 로그 graph 확인

 

git status

- 파일 상태 확인(staged, untracked, ..)

git diff

- commit된 파일상태와 현재 수정중인 상태 비교

 

git diff --staged

- commit된 파일상태와 add된 파일 상태 비교

 

 

[ git add / git commit ]

git add 파일명1 파일명2

- 해당 파일을 [Staging Area]로 이동(tracking)

 

git commit -m "커밋메세지"

- editor 호출없이 바로 커밋

 

git commit --amend

- 커밋된 메세지 수정

 

 

[ git push / git pull ]

git push

- 원격저장소[Repository]에 local repository[Working Directory]의 commit 내용을 올림

 

git pull

- 원격저장소[Repository]의 내용을 가져와서(fetch) local repository[Working Directory]에 합침(merge)

 

 

[ git branch ]

git branch <브랜치 이름>

- 브런치생성

 

git checkout <브랜치 이름>

- 사용할 브런치로 변경

 

git branch -r (-a는 로컬원격전부 확인)

- 원격브런치 목록확인

 

git push origin <브랜치 이름>

- 로컬브런치를 원격브런치로 추가

 

git branch --set-upstream-to origin/<브랜치 이름>

- 로컬브런치와 원격브런치 연동

 

git branch -d <브랜치 이름>

- 브런치 삭제

 

git push origin --delete <브랜치 이름>

- 원격저장소 브런치 삭제

 

git checkout -b test origin/test

- 원격 브런치 로컬브런치로 결합

 

 

[ git branch merge ]

git checkout master

- master사용

 

git branch -a

- checkout 바뀌었는지 확인

 

git merge <브런치 이름>

- 병합

 

git push

- 원격저장소에 병합할 경우 

 

 

[ git conflict ]

- git 충돌시 아래의 rebase 옵션으로 merge

 

git config pull.rebase false

git pull

- git pull 시 merge 방식을 사용

- 병합 커밋이 생성되며, 로컬과 원격 브랜치의 커밋 기록이 병합 이력과 함께 남음

- 병합 이력을 명확히 남기고 싶거나, 기존 작업 기록을 그대로 유지하고 싶을 때 사용

 

git config pull.rebase true

git pull

- git pull 시 rebase 방식을 사용

- 로컬 브랜치의 커밋들이 원격 브랜치의 커밋 뒤에 이어집

- 깔끔한 커밋 히스토리를 유지하고 싶을 때 사용

 

 

[ git reset ]

git reset --hard A

git push -f origin B

- B브랜치 내용을 로컬 브런치의 A커밋의 내용으로 덮어쓴다

 

git reset --soft COMMIT_ID
- HEAD가 COMMIT_ID로 이동하지만, 변경된 파일들은 그대로 로컬(인덱스)에 남아있다

 

git reset --hard COMMIT_ID

git push --force

-  HEAD가 COMMIT_ID로 이동하며, 작업 디렉터리의 파일과 인덱스가 모두 COMMIT_ID 시점으로 되돌아간다

 

 

[ git tag ]

git tag [태그이름]

git tag v1.0.5 030cc02ccc # 이전태그에 붙힐 때

 

git push origin [태그이름]

 

git push origin --delete [태그이름]

 

git checkout [tag name]

 

 

[ git stash ]

git stash

- 하던 작업 임시로 저장

 

git stash list

- stash 목록 확인

 

git stash apply [stash 이름]

- stash 적용

 

git stash pop

- 적용과 동시에 stash 에서 제거 (apply + drop)

 

 

[ git cherry-pick ]

- master branch에 develop branch 의 특정revision만을 적용할 때 사용

git checkout master 
git cherry-pick 345345fccc (develop의 적용한 revision)

 

- 여러개의 revision 적용

git cherry-pick 555f8b4^..480b6bb

 

 

[ git patch (특정파일만 병합) ]

- 현재 브랜치가 A 일 때, B브런치의 a.js 파일의 변경사항을 가져옴 

git checkout -p B a.js