50612


PCにプリインストールされているWindows10と、仮想マシンのFedoraと、タブレットに入っている勉強用に組んだコードをBitbucketの非公開リポジトリにpushして管理しようと考えつつ作業をしているとドロ沼に嵌りました。

**これまでに実行したコマンド（手順）**

1.ますWindows10のWSLを立ち上げ目的のディレクトリに移動し`git add .`を実行。

[code]

    ~λ git add .
    
[/code]

2.次にユーザー名とメールアドレスを追加。

[code]

    ~λ git config --global user.email "hoge@homeil.com"
    ~λ git config --global user.name "hoge"
    
[/code]

3.コミットしていく。

[code]

    ~λ git commit -m "hoge"
    
[/code]

4.pushすると以下のようなエラーが出る。

[code]

    ~λ git push --set-upstream origin master
    Warning: Permanently added the RSA host key for IP address '18.205.93.0' to the list of known hosts.
    To bitbucket.org:user/mystudyingaboutprogramming.git
    ! [rejected]        master -> master (fetch first)
    error: failed to push some refs to 'git@bitbucket.org:user/mystudyingaboutprogramming.git'
    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.
    
[/code]

5.[こちら](https://hacknote.jp/archives/15275/)のサイト曰く`git pull origin
master`で改善するようなので実行。

[code]

    ~λ git pull origin master
    warning: no common commits
    remote: Counting objects: 5, done.
    remote: Compressing objects: 100% (3/3), done.
    remote: Total 5 (delta 0), reused 0 (delta 0)
    Unpacking objects: 100% (5/5), done.
    From bitbucket.org:user/mystudyingaboutprogramming
    * branch            master     -> FETCH_HEAD
    * [new branch]      master     -> origin/master
    fatal: refusing to merge unrelated histories
    
[/code]

6.すると別のエラーが顔を出す。

[code]

    ~λ git push --set-upstream origin master
    To bitbucket.org:user/mystudyingaboutprogramming.git
    ! [rejected]        master -> master (non-fast-forward)
    error: failed to push some refs to 'git@bitbucket.org:user/mystudyingaboutprogramming.git'
    hint: Updates were rejected because the tip of your current branch is behind
    hint: its remote counterpart. Integrate the remote changes (e.g.
    hint: 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    
[/code]

**現在の状況**

現在、午前中から調べていますが（質問文を書いてる時点で5:19
PM)まったく泥沼から抜け出せていません（Fedoraも同じ個所で嵌りました）。追加情報を書かせていただくと、`git push (remote) (my-
branch) (remote-branch)`を実行するとmy-branchだけは追加できました。また`git
pull`を実行するとリモートリポジトリのREADMEが落ちてきたので、接続は完了しているようです。

英文の方も漁ってみましたが、が効果はありませんでした。頭がいっぱいになってきて、英語が読めなくなってきたのでこちらにポストさせていただきました。


CC BY-SA 4.0
2018-11-25T08:32:07.367
50604
2018-11-25T11:48:51.233
2018-11-25T08:51:28.500
30493
30493
question
git bitbucket
gitでBitbucketのリポジトリにpushできない問題


`Qiita`の記事を眺めた限り、`BitBucket`へのSSHKeyの登録は行えている様なので

  * BitBucket上のリポジトリー（受け用）の作成
  * 上記のローカルリポジトリーの登録

が、途中までしか出来ていない様に思えます。  
これは、ローカルのリポジトリー（ディレクトリー）で、

[code]

    git remote get-url origin
    
[/code]

とすれば、`origin`がどのURLに設定されているかが出力されますが、これが未設定なのではないかと推測されます。  
`BitBucket`に作ったリポジトリーが登録されていれば、

[code]

    git@bitbucket.org:[BitBucketのアカウント名]/[BitBukcet上のリポジトリー名].git
    
[/code]

と、表示されるはずですが、こうならない場合は、ローカルのリポジトリーにリモートリポジトリーを追加します。  
これは、手元のローカルリポジトリー（ディレクトリ）で

[code]

    git remote add origin git@bitbucket.org:[BitBucketのアカウント名]/[BitBukcet上のリポジトリー名].git
    
[/code]

その後、`git push -u origin master`として、リモートにローカルの`git`リポジトリーが`push`されるか確認してみて下さい。

それでも上手く行かない場合は、`BitBucket`のサイトに行き、作ったリポジトリーを（なにも登録されていないのであれば）破棄して、同じ名前でリポジトリーを作り直して下さい。

リポジトリーの設定が終わり、リポジトリーが準備されれば、

**Get your local Git repository on Bitbucket**  
という行の下に上と同じことが書かれていますが、`Step 2`はコピー＆ペーストでリモートリポジトリーの登録が出来る様になっています。  
この、Step
2の1行目と2行目をそれぞれ、行番号を除いた部分をコピー＆ペーストで、自分のローカルリポジトリーへ移動した後のshellへ実行すれば`BitBucket`へのリモートリポジトリーの追加が出来るはずです。お試し下さい。


CC BY-SA 4.0
2018-11-25T09:29:35.210
50606
2018-11-25T09:29:35.210
14745
50604
answer


> git pullを実行するとリモートリポジトリのREADMEが落ちてきた

とあるので、Bitbucketでgitリポジトリを作った時点で（READMEや.gitignoreが）コミットされてしまっていて、  
手元でゼロから作って（`git init`)もpushするときにはすでにコミットされているものがあるので、  
（もうリモートリポジトリには先に誰かが最初のコミットを済ませていて、あなたがローカルでinit〜コミットしたリポジトリとは別のIDのリポジトリなため）  
pushできません。

pullしてもすでにコミットしているものと、init後にローカルでコミットしたものに関連性はないので、マージなり別ブランチでコミットするなりしないと、masterブランチをどのように構成するか判断できないため、エラーになっているのだと思います。

  * bitbucket上でリポジトリを作る際に、READMEや.gitignoreを作らずに作成するようにする  
または

  * （git initはせずに）、任意の空のディレクトリにcloneした上で、目的のファイル（git addしたいもの）をそのclone先にコピーして、`git add .` 以降を実施されると良いかと思います。

git config によるユーザー名の追加は必要に応じてcommit前に実施してください。


CC BY-SA 4.0
2018-11-25T11:48:51.233
50612
2018-11-25T11:48:51.233
728
50604
answer