[GitHub] 단말기 붕괴 → 다른 PC에서 개발을 다시 시작하려고 할 때 git push를 진행할 수 없어서 처리했습니다.

입문


며칠 전 주요 맥북이 붕괴되어 컴퓨터를 바꿀 수밖에 없었다
따라서 GitHub의 원격 저장소에서 데이터를 끌어와 다시 개발을 시작해도git push단계rejected막혔기 때문에 이전에 처리한 절차를 공유한다.

이 기사가 유용한 사람

  • 주 단말기와 다른 단말기에서 개발하려면 잘 git push 막히지 않는 사람
  • 이 문장의 장점

  • 단말기가 갑자기 붕괴돼도 (GitHub에 데이터가 있으면) 개발을 재개할 수 있다
  • 환경

  • macOS Mojave 버전 10.14.6
  • 케이스: zsh
  • Git: 다음 참조
  • ❯ git --version
    git version 2.21.0 (Apple Git-122.2)
    

    프로세스


    1. 원격 저장소 데이터 다운로드


    우선 데이터가 없으면 시작할 수 없다.
    "Clone or Download"에서 "Download zip"으로 GitHub의 데이터를 로컬로 다운로드하여 지정한 디렉터리에 저장했습니다.



    지금 생각해 보니 여기는 원래
    git clone リモートリポジトリのURL
    
    당겨도 좋을 것 같아서요.

    2. git init

    ❯ git init
    Initialized empty Git repository in /Users/作業ディレクトリ/.git/
    

    3. 현지 작업


    나는 서류를 몇 개 조작했다. 왜냐하면 매우 분명하기 때문이다git push.

    4. git add -A

    ❯ git add -A
    
    add 완료.

    5. git commit

    ❯ git commit -m "コミット名"
    
    変更箇所が羅列される
    
    commit도 순조롭게 마쳤다.

    6. 'git push'

    ❯ git push リモートリポジトリ名 master
    fatal: 'リモートリポジトリ名' does not appear to be a git repository
    fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights
    and the repository exists.
    
    여기서'그런 원격 자원 라이브러리는 없어요!'혼났어.
    그러고 보니 단말기가 바뀌었기 때문에git remote add 원격 저장소를 지정해야 하는 일이 생각났다.

    7. git remote add

    ❯ git remote add リモートリポジトリ名 リモートリポジトリのURL
    
    GitHub를 통해 원격 저장소의 URL을 볼 수 있습니다.
    이로써 원격 저장소 지정이 순조롭게 완료되었습니다.

    8.2 두 번째git push

    ❯ git push リモートリポジトリ名 master
    To リモートリポジトリのURL
     ! [rejected]        master -> master (fetch first)
    error: failed to push some refs to 'リモートリポジトリのURL'
    hint: Updates were rejected because the remote contains work that you do
    hint: not have locally. This is usually caused by another repository pushing
    hint: to the same ref. You may want to first integrate the remote changes
    hint: (e.g., 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    
    "원격에는 로컬에 없는 변경 사항이 포함되어 있습니다. 업데이트할 수 없습니다!"욕을 먹다.
    어?근데 분명히 원거리에서 끌고 왔어요. 왜요?의문이 생기다.

    9. git push -f

    ❯ git push -f リモートリポジトリ名 master
    [email protected]: Permission denied (publickey).
    fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights
    and the repository exists.
    
    최신 로컬에서 오류가 없기 때문에 -f 옵션으로 강제 push 를 사용하려고 해도 "권한이 없습니다!"혼났어.
    이렇게 말하자면, 나는 공개 키의 제작과 배치가 아직 완성되지 않은 것을 발견했다.

    10. ssh-keygen에서 공개 키 만들기

    ❯ ssh-keygen -t rsa -C "メールアドレス"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/Users/PCユーザー名/.ssh/id_rsa): /Users/PCユーザー名/.ssh/任意のファイル名
    Enter passphrase (empty for no passphrase): ※パスフレーズを決めて入力(推奨。入力なしでEnterでも可。)
    Enter same passphrase again: ※同じものを入力
    Your identification has been saved in /Users/PCユーザー名/.ssh/任意のファイル名.
    Your public key has been saved in /Users/PCユーザー名/.ssh/任意のファイル名.pub.
    The key fingerprint is:
    フィンガープリント
    メールアドレス
    The key's randomart image is:
    +---[RSA 2048]----+
    ランダムアートが表示される
    +----[SHA256]-----+
    

    11. pbcopy < ~/.ssh/임의의 파일 이름.pub

    ❯ pbcopy < ~/.ssh/任意のファイル名.pub
    
    방금 만든 공개 키 pbcopy 를 클립보드에 복사하여 다음 GitHub에 배포합니다.

    12. GitHub에 공개 키 배포


    GitHub에서 작업합니다.
    다음 단계.









    "추가 키"를 누르면 공개 키 배치를 완성합니다.

    13.2회 git push-f

    ❯ git push -f リモートリポジトリ名 master
    Enumerating objects: 166, done.
    Counting objects: 100% (166/166), done.
    Delta compression using up to 8 threads
    Compressing objects: 100% (151/151), done.
    Writing objects: 100% (166/166), 159.09 KiB | 1.05 MiB/s, done.
    Total 166 (delta 15), reused 0 (delta 0)
    remote: Resolving deltas: 100% (15/15), done.
    To リモートリポジトリURL
     + XXXXXX...XXXXXX master -> master (forced update)
    
    안전push 완료!
    이후 Git 관리를 평소처럼 수행할 수 있습니다

    끝내다


    무사히 복구할 수 있으니까 안심해!
    낭비도 많고 싶은데 이 절차를 남겨 누구의 참고가 될 수 있다면 다행이다
    이번에 맥북이 갑자기 꺼지는 현상이 반복되었다. 하드웨어 문제인 것 같아서 백업도 받지 못하고 수리하러 갔지만, 최신 데이터를 GitHub로 잘 올리니 정말 다행이다.
    목숨을 건졌다

    참고 보도


    유치하고 졸렬한 보도였지만 자기가 쓴 것을 보면서 해결했다.
    [GitHub] 15분 동안 모르는 사람의 SSH 연결 설정 방법 알아보기. - Qiita.

    좋은 웹페이지 즐겨찾기