ETL

Git - 기본 명령어

wave35 2023. 3. 26. 20:10

 

[ 저장소 ]

git remote

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

git remote -v

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

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

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

git remote rm 저장소이름

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

 

 

[ 확인 ]

git log

  - commit 로그 확인

git status

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

git diff

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

git diff --staged

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

 

 

[ 변경사항 취소 ]

git checkout -- src/hello.c

- 특정 파일을 마지막 커밋 상태로 되돌림

git reset --hard

- 모든 파일을 되돌림

 

 

[ 업로드 ]

git add 파일명1 파일명2

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

git commit -m "커밋메세지"

  - editor 호출없이 바로 커밋

git push

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

 

 

[ 다운로드 ]

git pull

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

 

 

[ 브런치 ]

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 master

 - master사용

git branch -a 

 - checkout 바뀌었는지 확인

git merge <브런치 이름>

 - 병합

git push

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

 

 

[ 충돌 ]

git config pull.rebase false

- 로컬 브랜치와 원격 브랜치를 자동으로 git merge하여 하나의 커밋으로 병합

- 수동으로 해결 후 git merge --continue 실행

 

git config pull.rebase true

- 로컬 커밋을 최신 커밋 위로 다시 적용

- 충돌을 해결한 후 리베이스를 계속 진행 git rebase --continue

 

 

[ 초기설정 ]

git init

git add .

git commit -m 'init'

github에서 프로젝트 생성

git remote add origin https://github.name.com/42f-platfrom/00000.git

git push --set-upstream origin master

 

 

[ git reset ]

git reset --hard COMMIT_ID

- 특정 커밋(COMMIT_ID)으로 브랜치를 이동하며, 모든 변경 사항(Tracked + Untracked) 삭제

- 완전히 되돌릴 때만 사용 (주의 필요)

 

git push -f origin master

- 원격 저장소 롤백

 

git reset --soft COMMIT_ID

- 특정 커밋(COMMIT_ID)으로 브랜치를 이동하지만, 현재 변경 사항은 유지

- Staging Area(스테이징 영역, git add)는 유지됨

 

 

[ git cherry pick ]

git checkout master

git cherry-pick <commit-id>

- develop 브랜치의 특정 커밋을 master 브랜치에 반영

- 전체 브랜치를 병합하지 않고, 특정 커밋만 따로 적용

 

 

https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html