質問: ### 前提・実現したいこと android studioで`Get from Version Control`から公式サイトのexampleをダウンロードしました。 ある程度操作し、自分でコメントを追記した状態でGithubに残しておきたいので、自分のGithubに共有したいと思ったのですが、この作業をandroid studioで行うにはどうすれば良いのか、わかりません。 いろんなワードで検索しましたが、うまくヒットしませんでした。 ### 発生している問題 公式などの外部のGithubからダウンロードしたプロジェクトを自分のGithubに共有したいがやり方がわからない。 外部のGithub ### 補足情報 自分で一から作成したプロジェクトの場合は`Shere on Github`で簡単に共有できるのですが、外部からのプロジェクトに対しても同じようにしても良いのか、試す前に調べたいと思いましたが見つからないため質問に至りました。 よろしくお願い申し上げます。 ### 追記(2021/10/12) ご指摘いただいたとおり、欲しいプロジェクトをフォークし、ローカル環境にクローンした後でフォークした自分のGidhubにプッシュしようとしたところエラーが発生しました。 (プッシュ時にトークンを設定しています。) ``` % git push -u origin master To https://github.com//river_pod.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://@github.com//river_pod.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. ``` このエラーの解釈って、『フォーク時の内容とプッシュ時の内容で相違があるのでプッシュに失敗した』ということでしょうか? もしそうであれば、他人のGithubからダウンロードして自分が編集したものを自分のGithubにプッシュすることは不可能ということになるのでしょうか?
回答: [質問への追記・修正の依頼] の内容読んだ上で回答します。 まず現在リポジトリが3つあるのでそれを先に整理します。 | 呼び方 | 内容 | | --- | --- | | 元リポ | 公式 https://github.com/rrousselGit/river_pod/tree/master/examples/marvel | | フォークリポ | フォークしたリポジトリ | | 自リポ | はじめにダウンロードしたフォルダ | 以下この呼び方で書きます。 はじめに、**フォークリポ**を今一度最新化(pull)してください。 このとき、**フォークリポ**に差分があればエラーが発生すると思うので、 pull する前に一度全ての変更を破棄しておいてください。 あなたが書いた日本語のコメントは**自リポ**にあるはずですから、**フォークリポ**の変更は破棄していいはずです。 次に、最新化した**フォークリポ**を、.git フォルダだけ残して全て削除してください。 削除したら、.git フォルダ以外の**自リポ**のファイルをコピーしてください。要は**フォークリポ**の内容を**自リポ**に置き換えてます。 .git フォルダまで上書きしてしまうと意味ないので、.git は必ず除外してください。 (一度削除するのは、もし最初にダウンロードしてから今までの間にファイルが追加されていた場合気づけないからです) ここで**フォークリポ**を確認すると、いくつか差分が出ていると思います。 そこから、自分が加えた変更のみをステージングし、コミットしてください。 見に覚えのない差分は、最初にダウンロードしてから今までの間に**元リポ**で行われた変更ですので、 それはコミットしないようにしてください。 コミットができたらそのまま**フォークリポ**を push して完了です。 もしこの方法でもうまくいかないとうのなら、妥協して元リポと紐付かないリポジトリとして管理することをおすすめします。 なお本来は、すでに書かれてるとおりですが 1. 公式のリポジトリをフォーク 2. フォークしたリポジトリを編集し、作業していく というのが正しい流れでした。 しかしここであなたはフォークせずに Git 管理されていないファイルをダウンロードして編集してしまいました。 そのため、あとから Git 管理と元リポジトリとの紐付けを行おうとしたせいで少々面倒になっています。 ですのではじめから正しい流れで作業していたら特に困ることはなかったかな...と思います。 (別に咎めているわけではありません) -- 余談 -- > > 私のように公式のexampleに日本語のコメントを加えた状態で自分のGithubにあげておきたいと思う人は少数なのでしょうか? > > > 普通です。むしろそれが GitHub の主たる機能です。 日本語のコメント追加に限らず、自分で機能を拡張したりといろいろいじって自分のリポジトリとして管理するのは一般的なつかいかたです。 あともしかしたら Git と GitHub を同じものだと思ってないでしょうか? Git はツールの名前、GitHub は Git を使ったサービスということを理解しないと今後どちらの機能か区別できず混乱することがでてくるかなと思いました。 そうですね、例えるならちょうど Wiki/Wikipedia の関係とおなじです。 Wiki 形式の百科辞書が Wikipedia。 最後に、Git をコマンドで操作されてるみたいですが、 慣れないうちは SourceTree とか Fork Client とか使ったほうがいいと思います。