환경
명령어
git 연결
원격 저장소 연결
git remote add origin URL
원격 저장소 연결 확인
branch 이동
- master에서 이동하는 경우 or branch 존재하지 않는 경우 : git checkout -b branch
- 그 외 :
git checkout branch
commit 내용 확인
commit
git commit -m 'commit message'
commit log 확인
commit file 취소
특정 commit 지점으로 이동
git reset --hard {log에 적혀있는 commit 지점}
- 이동 후에 push 해줘야 한다
git push -f origin {branch}
존재하는 branch clone
git clone A --single-branch B
특정 branch pull
특정 branch push
git push origin A
- 되도록 해당 branch에서 명령어 실행해주는게 좋음
강제 push
- 해당 branch에서 시전하는 코드
- 이거하면 전에 commit 내용들 삭제됨
- 이거 할거면 전에 commit 한 내용들 백업해놓든 웬만하면 하지말기
git push -f origin A
로컬에서 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하는게 맞다
- 그래서 그냥 무식하게 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되지 않은 내용들 체크되기에 이렇게 확인하며 진행했다