본문 바로가기
지식인

GIT

by 패쓰킴 2022. 12. 12.
728x90

Git을 처음 접해본다면

git의 사용법 및 각 명령어에 대해 이해할 수 있는 곳 ->
https://backlog.com/git-tutorial/kr/
git의 flow를 실습해볼 수 있는 사이트 ->
https://learngitbranching.js.org/?locale=ko

 

Github에 Repository 생성 tip!

readme 와 ignore 파일은 그냥 체크체크 해서 생성해주자

불필요하면 나중에 삭제 해주면 되지만

새로 생성해서 추가해주려면 귀찮다 :)

 

Github에 프로젝트 업로드

  1. 용량 초과 예방
    • .gitignore 파일에 'Pods/' 추가
    • 자동으로 git push 시 코코아팟 파일은 untrack 하여 용량 초과 에러 발생 가능성이 줄어든다.
  2. 코코아팟을 사용하는 경우 업로드 할 때는 제외 해주자
  3. xcode에서 변경된 내역은만약, 변경 사항을 되돌리고 싶으면 이 파란색 바를 클릭하거나 파일 마우스 우클릭하면 source control의 discard change 눌러주기
  4. 코드 라인 왼쪽에 파란색 바가 생기고 파일명 우측에 M 이라는 상태가 표시된다.

 

branch 나눠주기

1.git branch 브렌치명

   현재 branch(main) 에서 생성한 브렌치(new)가 main의 작업 라인과 동일한 선상에 생성이 된다

2.git checkout new이때 여전히 main의 라인을 공유한다.

    new에서 작업을 해준 후 commit - push를 진행해준다.

3. git checkout main

    main에서 작업을 해준 후 commit - push를 진행해준다.

4. 이제 main과 new의 작업 내용이 전혀 달라졌다.

    main 과 new에 대한 작업라인이 분리되어 분명하게 작업 내용이 다른 것을 볼 수 있다.

 

커밋메세지 변경

- 직전 commit

git commit --amend

 

- 이미 push한 commit

1) 수정할 커밋 위치

git rebase HEAD~1 -i

'HEAD~1'은 바로 직전에 push한 commit을 가리긴다.

따라서, 수정하려는 commit이 몇 번째 전인지 보고 HEAD뒤에 알맞게 넣어주면 되겠다.

2) 에디터 창이 나타나고

여기에서 수정하려는 메세지의 pick을 reword로 수정 후
esc -> :wq!

3) 이제 메세지를 수정할 에디터 창이 나타남

메세지를 수정 후
esc -> :wq!

4) 수정한 내역 push

git push origin main --force

 

gitignore가 안먹힐 때

원격에 있는 깃에 ignore한 파일 또는 폴더가 이미 commit/push 되어 있다면 ignore 되어 있다고 해도 계속 추적이 된다.

따라서 해당 파일 및 폴더를 원격에서 제거 후 진행 해야 한다.

git rm -r 파일 및 폴더명 // 원격, 로컬 저장소에 있는 파일 및 폴더 제거
git rm -r --cached 파일 및 폴더명 // 원격에 있는 파일 똔느 폴더만 제거(로컬에만 남는다)
git commit -m " 커밋메세지 "
git push

참고:

https://stackoverflow.com/questions/57667305/adding-git-ignore-for-xcode-pods-folder-does-not-work

https://tyrionlife.tistory.com/186

 

↓(down arrow)

원격과 로컬의 작업이 다를 때 xcode에서 보여주는 상태이다.

참고:

https://stackoverflow.com/questions/47323378/what-does-mean-by-%E2%86%93-and-c-besides-file-name-in-xcode9-project-navigator

 

나의 경우는 레포지토리를 clone 해왔는데

로컬의 파일디렉토리에는 존재하는 파일이 xcode에는 보이지 않았다

그래서 직접 파일을 xcode로 끌어다 놓고 copy items if needed로 파일을 추가해준 후 커밋 푸시를 진행하니 해결이 되었다.

이는 원격과 로컬의 project파일의 차이를 맞춰주는 작업이라 원격에서도 실제 수정되는 파일은 'project.pbxproj' 이 프로젝트 파일 하나이다!

 

내가 생성한 branch에서 push하기

myBranch를 바라보는 상태에서 작업한 내용을 add -> commit 후

git push 원격메인브랜치 내브랜치
->
git push origin myBranch

 

내가 생성한 branch를 main으로 pull request, merge

myBranch에서 push가 완료 후 Github 레포 메인 화면으로 가보면

 pull request와 merge를 할 수 있도록 알림바가 생긴다.

초록색 버튼을 눌러서 상세 화면으로 진입!

 

main <- myBranch로 pull request가 맞는지 확인하고

 

내용을 입력한 뒤 초록버튼!

 

충돌이 없다면 바로 merge가 가능하다고 표시 될것이다.

 

merge pull request버튼을 눌러 main으로 mybranch merge까지 완료해준다.

 

현재 브랜치를 main으로 옮기고 pull 해주면 끝.

728x90

'지식인' 카테고리의 다른 글

ETag  (0) 2023.09.19
클린아키텍처  (0) 2023.09.14
하나의 macOS에서 여러 Github 사용  (0) 2022.08.05
Locale identifier  (0) 2022.03.22
용어 사전  (0) 2021.12.15

댓글