質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

679閲覧

Github: 外部からダウンロードしたプロジェクトを自分のGithubで共有する方法

massanmesu

総合スコア36

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

1クリップ

投稿2021/10/11 07:12

編集2021/10/12 03:29

前提・実現したいこと

android studioでGet from Version Controlから公式サイトのexampleをダウンロードしました。
ある程度操作し、自分でコメントを追記した状態でGithubに残しておきたいので、自分のGithubに共有したいと思ったのですが、この作業をandroid studioで行うにはどうすれば良いのか、わかりません。

いろんなワードで検索しましたが、うまくヒットしませんでした。

発生している問題

公式などの外部のGithubからダウンロードしたプロジェクトを自分のGithubに共有したいがやり方がわからない。

外部のGithub

補足情報

自分で一から作成したプロジェクトの場合はShere on Githubで簡単に共有できるのですが、外部からのプロジェクトに対しても同じようにしても良いのか、試す前に調べたいと思いましたが見つからないため質問に至りました。
よろしくお願い申し上げます。

追記(2021/10/12)

ご指摘いただいたとおり、欲しいプロジェクトをフォークし、ローカル環境にクローンした後でフォークした自分のGidhubにプッシュしようとしたところエラーが発生しました。
(プッシュ時にトークンを設定しています。)

Terminal

1% git push -u origin master 2To https://github.com/<myName>/river_pod.git 3 ! [rejected] master -> master (fetch first) 4error: failed to push some refs to 'https://<token>@github.com/<myName>/river_pod.git' 5hint: Updates were rejected because the remote contains work that you do 6hint: not have locally. This is usually caused by another repository pushing 7hint: to the same ref. You may want to first integrate the remote changes 8hint: (e.g., 'git pull ...') before pushing again. 9hint: See the 'Note about fast-forwards' in 'git push --help' for details.

このエラーの解釈って、『フォーク時の内容とプッシュ時の内容で相違があるのでプッシュに失敗した』ということでしょうか?
もしそうであれば、他人のGithubからダウンロードして自分が編集したものを自分のGithubにプッシュすることは不可能ということになるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/10/11 07:15

気になったので・・・ × Gidhub ○Github
massanmesu

2021/10/11 07:24

お恥ずかしい。。。 ご指摘ありがとうございました。
massanmesu

2021/10/12 00:25

Githubのフォークボタンを押したら自分のGithubにフォークできました。 この状態でファイルの中身を書き換えてもよろしいのでしょうか?
hoshi-takanori

2021/10/12 00:38

Fork した自分のリポジトリから clone するか、すでに元のリポジトリから clone 済みなら remote 先を fork したものに書き換えると良いでしょう。
massanmesu

2021/10/12 03:31

すでにクローンして編集していたのでremote先をフォークのURLに変更してプッシュしましたが、追記に書いたエラーが発生してしまいました。
hoshi-takanori

2021/10/12 04:30

たぶんフォーク元のリポジトリの方が進んでるのでしょうね。 https://github.com/rrousselGit/river_pod/commits/master 今後どうしたいかによりますが、元のリポジトリの変更は無視して、自分の変更だけを管理するなら git push -f origin master で上書きしてしまえば良いかと。 また、その後、元のリポジトリの変更に追従したい場合、やり方はいろいろありますが、これが分かりやすいかなぁ。 https://zenn.dev/yui/articles/e90c27846fa17679b7c2
massanmesu

2021/10/12 05:35

まさか数時間前まで更新されていたなんて。。。 ご教授いただいたとおりに変更に追従するところまでエラーもなく完了したのですが、肝心の自分が手を加えた部分が反映されておりませんでした。 もしかして、私のように公式のexampleに日本語のコメントを加えた状態で自分のGithubにあげておきたいと思う人は少数なのでしょうか?ここまで複雑なことをしないとできないのはほとんどの人が求めていないアクションなのかな、と邪推してしまいます。。。
hoshi-takanori

2021/10/12 06:02

手を加えた部分は、もしかしてまだ commit してなかったりしますか? また、git の操作に関しては、この程度のことは複雑なうちに入らないと思います…。
massanmesu

2021/10/12 07:35

自分の知能の低さが嫌になります。 兎にも角にもご対応ありがとうございました。
guest

回答1

0

ベストアンサー

[質問への追記・修正の依頼] の内容読んだ上で回答します。

まず現在リポジトリが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 とか使ったほうがいいと思います。

投稿2021/10/12 06:41

編集2021/10/12 06:45
GrassfieldK

総合スコア50

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

massanmesu

2021/10/12 07:33

詳しい解説ありがとうございます。とても文章がわかりやすく感動しています。 日本語のコメントの量は多くなかったので、正しい流れで一からやり直したところ、うまくプッシュできました。 GitとGithubの違いは把握しているつもりですが、数ヶ月前に最低限の勉強を一度だけしただけなので再度勉強する必要があると実感しました。
GrassfieldK

2021/10/14 02:00

うまくできたようでよかったです! そうですね、はじめからやり直してしまったほうが早い場合もあります。 本来やりたかったことは単純ですが、今回は違う入り口からスタートしてしまったがゆえに難しくなっただけなので、Git 理解できてないかなとか思わなくても大丈夫です。 現に本来の正しい手順はすぐに理解して実行できているので。
massanmesu

2021/10/14 05:14

励みになります。 GrassfieldKさんのような優しくてわかりやすい説明ができるエンジニアを目指したいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問