[Git] GitHub

Ik·2022년 11월 15일
0

CS

목록 보기
16/27

환경

명령어

git 연결

  • git init

원격 저장소 연결

  • git remote add origin URL

원격 저장소 연결 확인

  • git remote -v

branch 이동

  • master에서 이동하는 경우 or branch 존재하지 않는 경우 : git checkout -b branch
  • 그 외 : git checkout branch

commit 내용 확인

  • git status

commit

  • git commit -m 'commit message'

commit log 확인

  • git log

commit file 취소

  • git reset HEAD {file명}

특정 commit 지점으로 이동

  • git reset --hard {log에 적혀있는 commit 지점}
  • 이동 후에 push 해줘야 한다
    • git push -f origin {branch}

존재하는 branch clone

  • git clone A --single-branch B
    • A : branch 이름
    • B : URL

특정 branch pull

  • git pull origin A
    • A : branch 이름

특정 branch push

  • git push origin A
    • A : branch 이름
  • 되도록 해당 branch에서 명령어 실행해주는게 좋음

강제 push

  • 해당 branch에서 시전하는 코드
  • 이거하면 전에 commit 내용들 삭제됨
  • 이거 할거면 전에 commit 한 내용들 백업해놓든 웬만하면 하지말기
  • git push -f origin A
    • A : branch 이름

로컬에서 branch 삭제

  • git branch -d branch_name

원격에서 branch 삭제

  • git push origin --delete branch_name

원격 저장소 file 삭제

  • git reset HEAD {file명} : file 삭제






Trouble

폴더는 빨간불, commit할 내용은 commit안되고 push도 오류 발생

  • readme 만들고 push하려했는데 원격 저장소에는 commit에 readme 박혀있는데 로컬에는 없어서 에러뜸
  • local이랑 remote(원격 저장소)랑 차이 있으면 push 안됨
  • local file commit한 상황, push안하고 remote에서 readme 만들어버림 => local에 readme없음, commit해버려서 commit할 data도 더 이상 없음
    • 이런 경우 발생 => 이럴 때 pull해서 readme local에 땡기고 그냥 push하면됨, 추가 commit X, commit도 안될뿐더러 이미 중간 저장소에 commit 되어 있기에 변경사항 저장되어 있음
  • 참고 : https://myvelop.tistory.com/26

git merge 관련

  • 특정 파일만 merge할 수 있는 경우도 가능
  • merge의 기준은 현재 위치한 브런치라 생각하면된다
  • 내가 건든 file말고 merge하면 될 것 같다
  • 만약 브런치 하나로부터 파생되게끔 관리 못한 경우면 pull해서 head 박아놓고
    바꿀 파일로 복붙해서 push하는게 맞다

git Already up to date, refusing to merge unrelated histories

  • 그래서 그냥 무식하게 pull 하려 했는데 fatal: refusing to merge unrelated histories 발생
  • 해결 : https://jobc.tistory.com/177
  • 근데 이거 pull해서 새로운 branch로 push해야 제대로 됨
  • pull하면 다 초록 체크 뜨는데 막상 git에는 로컬에 있는데로 업로드 안되어 있음

위에 내용들 부정확, 정리하자면 이번 PJ에서 형상관리가 제대로 이루어지지 못했고 때문에 merge시에 다양한 트러블 존재, 난 우선 merge 기준이 되는 파일, 덮으려는 파일 두 가지 경우일 때 local에 기준이 되는 파일 pull하고 덮으려는 파일 pull한 폴더에 복붙해서 변경사항 확인해 push하는 방식으로 진행했다

폴더는 기준이 되는 branch로 연결되어있는 상태이기에 복붙하면 commit되지 않은 내용들 체크되기에 이렇게 확인하며 진행했다

0개의 댓글