DevOps/Git
macOS 에서 Git 프로젝트 업로드
is..cy
2023. 3. 24. 01:55
Git 과 macOs 연동부분, 그 과정에서 발생했던 error들을 정리하고자 한다 😫
1. project upload
① git repository 에 commit 하고자 하는 프로젝트를 선택한다.
- "서비스" -> "폴더에서 새로운터미널 열기" 클릭 (code editor terminal 사용해도 상관없음)
// git 초기화 (일반폴더 -> git repository 변환)
$ git init


② git 상태 확인
- 붉은글씨로 commit 해야할 파일을 표시해줌
//git 상태확인
$ git status
③ commit 과정
//git add 파일/디렉토리 경로> : 해당경로에 commit 파일추가
$ git add .

// commit 및 comment 추가
$ git commit -m "전달 메시지"

④ 생성된 repository에 프로젝트 추가

// 레파지토리에 프로젝트 추가 (git에서 HTTPS 주소 복사)
$ git remote add origin <repository에서 복사한주소>

- 프로젝트를 잘못 추가했을시 remove 명령어
//원격저장소 제거
git remote remove origin
//과거 내역 reset
git reset HEAD^

⑤ push / pull 과정
//push
// --force 추가시 강제 적용
$ git push origin master
//pull
$ git pull origin master

- master라는 이름이 없다고 error 발생 .. branch 명을 꼭 확인해주자!

2. Error 대처방법
① branch 명을 바꿨는데도 pull 과정에서 error 가 발생했다.
(local에 존재하지 않는 read.md 파일이 repository에 존재하여 발생)

- merge 작업이 필요
//fast-forward only option off
git config --unset --global pull.ff
//hint를 따라 merge process 진행
//hint: git config pull.rebase false # merge (the default strategy)
git config pull.rebase false --gloabal
//다시 pull
git pull origin main
//충돌 확인후 merge
git add .
git commit -m "Merge into develop"

- 연결된 history가 없다며 history error가 발생
//allow 처리
//refusing to merge unrelated histories
git pull origin main --allow-unrelated-histories

② Pull 없이 push할 경우 기존 내용 삭제 문제가 생길 수 있다.

//순차적으로 실행
git init
git add .
git commit -m “message”
git remote add origin main
git push -u origin main
//Master branch가 없어서 발생하는 오류일시
git checkout -b ‘main’
git push origin main
⑦ git push 할때 username, password를 물어보는 경우 (Username for 'https://github.com')
- HTTPS URL의 경우 username, password 를 물어본다.
- git remote -v 로 확인시, HTTPS 로 url이 시작한다면, 설정을 바꾸어준다.

- SSH Tab에서 URL을 복사

- HTTPS URL 을 SSH URL로 변경
//HTTPS -> SSH URL 변경
git remote set-url origin "SSH URL"
//git remote -v 로 확인시 "https://" -> "git@" 로 변경됨

③ Permission denided 발생의 경우 (ssh-key 생성)
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
- SSH URL의 경우, SSH-KEY를 git에 등록해주어야한다.
- RSA (공개키 암호 알고리즘) 방식의 암호 key 생성
- 질문의 답에 모두 enter (password 생성 안해도됨)
- (~/.ssh/id_rsa.pub) 위치에 key 생성
//SSH KEY 생성
ssh-keygen -t rsa -C “본인 GitHub 계정 이메일”
//key값 확인 (deploy key 등록시 필요)
//".pub"를 반드시 붙혀야 한다.
cat ~/.ssh/id_rsa.pub


- SSH and GPG keys -> New SSH Key 클릭
- 임의의 Title 입력후, key 입력폼에 "cat ~" 명령어로 나온 key 값을 입력


- 생성된 SSH key 확인

④ git repository 에 폴더가 화살표 모양으로 선택안될경우


- 서브폴더 .git 폴더 제거 (ex. CSS_work, HTML_work .. 안에 존재하는)
- 숨김파일 표시 방법
1) 윈도우(Windows): 파일탐색기 > 상단 보기 탭 > '숨긴 항목' 체크
2) 맥(Mac): Finder > command+shift+. 키 입력
기나긴 여정 끝에 project가 upload 되었다 😀
이외에도 에러발생시 대처법들을 업로드할 예정이다.
