* github.com에는 'initial commit', 'README.md' 아무것도 없이 빈 repository 'SuperDir' 만 생성.
* lcoal 경로 구조
AA ( 1 depth)
ㄴ A ( 2 depth)
ㄴ Apple.txt
ㄴ C (3 depth)
ㄴ Can.txt
ㄴ Cola.txt
ㄴ B ( 2 depth)
ㄴBanana.txt
[A] 에서 부터 시작
1. [A]에 .git가 이미 있거나 ( why1️⃣ [A] .git가 있는 하위 경로, 폴더부터 git add 가능. [AA]/[B]는 git add,staging 불가)
[A]에 git init 또는 .git 생성 ( why2️⃣ repo에 아무런 커밋도 없으면 branch 조회 불가)
★ 이때도 git remote는 되지만 - 역시 '초기' 커밋이 없으면 branch 조회 불가
- clone이나 pull하면 조회되는지 확인
2. [A] git add <.git기준 하위파일>
git add -A <.git기준 하위폴더> ( 근데 -A 안붙여도 폴더만 적어도 폴더하위파일까지 자동추가됨...)
git add C // C/Cola.txt와 C/Can.txt 둘 다 statging됨
3. [A] git commit -m "first commit"
★★ 이 때, 첫 커밋 이후부터 git branch 조회 가능 ★★
4. [A] git branch // 현재 브랜치 조회 가능.
5. [A] git branch <신규브랜치명> → 이 상태에선 push해도 checkout을 안한 상태라 신규브랜치로 반영 안됨;
github.com에서 신규 브랜치 추가 → 이건 github에서 한거라 local update하면 조회 가능
6. [A] git remote update
7. git checkout <신규브랜치>
8. git remote add origin <https://github.com/abc123/SuperDir.git>
9. git push -u origin <최종push할 브랜치> → 이때 초기 커밋 브랜치가 default 브랜치가 됨
[AA] 상위경로에서 .git 생성 시, 동일 레포에 반영될 수 있는지
10. 상위경로 AA로 이동. git init해서 .git 생성
11. git add <AA기준 하위폴더파일>
12. git commit -m "second commit"
13. git remote add origin <[A]와 동일 레포 https:>
14. git push -u origin <브랜치>
★오류 발생. pull하라고 뜸. [A]의 first commit이었던 C가 [AA] .git 기준 경로에는 없으니까 충돌나는 것.
15. git pull <https://> <브랜치> →[AA] 경로에, [A] 하위 first commit 였던 [C]가 생성됨. 지저분~.
16. 아무튼 다시 14 하면 정상적으로 push됨
!!★!! 16에서 [AA]에서 [C]가 github.com에 빈 폴더만 올라간다면 이미 레포로 사용했던 [A]의 .git가 있어서 그렇다.
폴더만 올라가는 [C] 경로를 기준으로 Finder\우클릭\터미널을 새로 실행
$ find ./ -name ".git" | xargs rm -Rf // 모든 하위 폴더에 있는 .git 경로 전부 강제 삭제
$ rm-rf .git // [C] 하위에 있는 .git 전부 삭제
$ git rm--cached. -rf
[AA]에서 다시 [C]를 git add하고
commit push 하면 됨
* github.com 에는 'initial commit', 'README.md' 만 있는 빈 repository 만 생성되어있고,
* local 저장소에 이미 기존 파일이 있고 위 repo에 넣어야한다면...
[AA]같은 상위경로에 .git을 만들고 위의 repo에 remote해서 기존 파일인 README.md를 pull해주고 난 후,
(그러면 AA엔 (1) .git (2) README.md (3) 기존 파일들이 있을 것?)
기존 파일을 commit push
1. .git 이 있거나
git init 하여 .git 생성
2. git remote add origin <https://>
3. git remote update // 새로운 브런치 main 떠야함
4. git branch // github.com default 브랜치 main이면 맞춰가기
5. git branch main
6. git branch
7. git checkout main // 성공했다고 떠야함
8. git branch
9. git pull <https> main // README.md 가져왔는지 확인
10. git status // 이미 있던 파일들 조회 확인(unstaged든 staged든)
11. git add -A <특정경로>
12. git status // 특정경로 밑의 파일들 staged 조회 확인
13. git push -u origin main
★ github 저장소엔 아직 존재하는 파일이고
local 저장소에선 삭제해버린 파일이어도
git add <삭제해버린 파일들> 올리고
commit "delete file"하고
push 해줘야함
참고 문헌
'현상관리(svn, git) > 설치, 명령어' 카테고리의 다른 글
[git] 깃헙 repo를 로컬에 가져오기 - 커맨드 (0) | 2024.09.01 |
---|---|
[git] branch 생성, 체크아웃, 삭제 - 커맨드 (0) | 2024.09.01 |
[git] 로컬, 깃허브 - 기본 커맨드 (0) | 2024.08.31 |
[GitHub merge] 임시 메모 (0) | 2024.01.11 |
(2) visual svn와 STS3 연동 (0) | 2022.01.25 |