Git을 처음 접해본다면
git의 사용법 및 각 명령어에 대해 이해할 수 있는 곳 ->
https://backlog.com/git-tutorial/kr/
git의 flow를 실습해볼 수 있는 사이트 ->
https://learngitbranching.js.org/?locale=ko
Github에 Repository 생성 tip!
readme 와 ignore 파일은 그냥 체크체크 해서 생성해주자
불필요하면 나중에 삭제 해주면 되지만
새로 생성해서 추가해주려면 귀찮다 :)
Github에 프로젝트 업로드
- 용량 초과 예방
- .gitignore 파일에 'Pods/' 추가
- 자동으로 git push 시 코코아팟 파일은 untrack 하여 용량 초과 에러 발생 가능성이 줄어든다.
- 코코아팟을 사용하는 경우 업로드 할 때는 제외 해주자
- xcode에서 변경된 내역은만약, 변경 사항을 되돌리고 싶으면 이 파란색 바를 클릭하거나 파일 마우스 우클릭하면 source control의 discard change 눌러주기
- 코드 라인 왼쪽에 파란색 바가 생기고 파일명 우측에 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에서 보여주는 상태이다.
참고:
나의 경우는 레포지토리를 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 해주면 끝.
push한 commit들 합치기(squash commit)
원격 저장소에 push까지 완료한 commit들을 정리하는 방법이 있다. 이걸 squash 한다고 함.
1. 합치고 싶은 commit의 위치가 가장 최근 commit의 위치까지 몇 개인지 세어보자.
만약, 3개라면 '위치'의 자리에 3을 넣어주면 되겠음.
git rebase -i origin/브랜치명~위치 브랜치명
2. 그럼 vi 편집창이 뜹니다.
3. 합치고 싶은 커밋 중 가장 상단에 있는 커밋이 대장이 됩니다. 대장 아래에 있는 커밋들 중 합칠 커밋의 'pick'을 's' 또는 'squash'로 바꿔줍니다. 단, 대장과 이어지는 커밋들이어야 함!
이렇게 하면 맨 위의 커밋을 대장으로 하고 마지막을 제외한 두번째, 세번째 커밋만 합쳐지게 될겁니다.
만약, 합치고 싶은 커밋이 세번째와 네번째라면!
커밋의 위치를 바꿔주면 됩니다.
이렇게!
4. 저장하고 나옵니다 ':wq'
5. 새로이 합쳐진 커밋들의 메세지를 작성할 vi 편집창이 뜹니다.
6. 새로운 커밋메세지를 작성 해줍니다. 맨 위에 있는 '1번째 커밋 메시지 입니다:' 아래에 작성해주면 됩니다.
저는 'refact/네트워크 통신 부 변경'로 커밋 메세지를 작성해주었습니다.
7. 저장하고 나오면 반영된 작업 내용이 뜹니다.
잘 반영 된건지 확인 할 땐 'git log'로 확인 해보면 됩니다.
8. 마지막으로 원격 저장소에 반영해주기.
git push -f origin 브랜치명
'지식인' 카테고리의 다른 글
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 |
댓글