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

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

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

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

GitHub

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

Q&A

解決済

2回答

2347閲覧

ローカルからGitHub上にpushしましたが、正常にローカルの変更が反映されません

aae_11

総合スコア178

Git

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

GitHub

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

0グッド

0クリップ

投稿2019/08/17 02:42

編集2019/08/17 02:44

ローカルリポジトリからGithubへpushしましたら、GitHub上のフォルダ、ファイルの構成がおかしくなってしまいました。
GitHubのリポジトリには2つのフォルダを入れ、それぞれ、別の作成したwebアプリとして、管理していました。
GitHubには、Aフォルダ、Bフォルダの2つが入っていたのですが、今までは意識することなく、ローカルでAフォルダ内のファイル内のコードを変更したら、コミットし、GitHubへpushするという流れで、変更点はGitHub上のフォルダAに反映されていました。
しかし、先ほどpushしようとした際に、エラーが発生してしまった為、再度、「git remote add origin https://github.com/アカウント名/リポジトリ名」でリモートに再接続した後、「git merge --allow-unrelated-histories origin/master」としました。そして、「git push origin master」としましたら、GitHub上に、既存のAフォルダ内のファイルが変更されたのではなく、新しく、Aフォルダ内のフォルダやファイルがAフォルダとBフォルダが存在する同階層(リポジトリ直下)に追加されてしまいました。
戻そうと思い、「$ git push -f origin 8sgnkss:master」のようにして、戻そうと試みたのですが、
「fatal: 8sgnkss cannot be resolved to branch」エラーが発生しできませんでした。
もし、元に戻す方法がありましたら、教えて頂けましたら、幸いです。
よろしくお願いします。

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

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

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

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

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

querykuma

2019/08/17 10:32

ローカルで戻してから「git push -f」とすればGitHubのレポジトリがローカルと同じになるはずです。 不思議ですね。 git remote -vv git branch -vv git status git log --oneline -3 の結果を教えてください。 「git remote add」するときレポジトリ名に.gitを付け忘れたとか?
aae_11

2019/08/17 10:45

あ...おっしゃります通り、「git remote add」する際に 「.git」を付けわすわてしまいました...
aae_11

2019/08/17 10:50 編集

git remote -vvの結果は以下になります。 origin https://github.com/アカウント名/リポジトリ名(fetch) origin https://github.com/アカウント名/リポジトリ名(push) git branch -vv の結果は以下になります。 master 815c8b59 Merge remote-tracking branch 'origin/master' send_gmail 34c017c8 fixed mail git statusの結果は以下になります。 On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: readme.md git log --oneline3の結果は以下になります。 815c8b59 (HEAD -> master, origin/master) Merge remote-tracking branch 'origin/master' d1b1ab9e fixed html and css 21b7cf32 first commit よろしくお願いします。
guest

回答2

0

ベストアンサー

あ...おっしゃります通り、「git remote add」する際に 「.git」を付けわすわてしまいました...

remote addの修正で解決しました?

解決したかどうか置いておいて

git statusが
modified: readme.md
となっています。
modifiedを残すのはオススメしません。
readme.mdの変更をcommitしましょう。

readme.mdの変更を永久に消してしまってもいいのであれば

git checkout -f master
git reset --hard d1b1ab9e
git push -u origin master -f

でローカルとGitHubともに元に戻せるはずです。

-uを付けてpushすると次からgit push -fで良くなります。
git branch -vv の結果が変わるはずです。

免責。失敗したときのためGitレポジトリのバックアップを取っておきましょう。

投稿2019/08/17 11:28

querykuma

総合スコア777

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

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

aae_11

2019/08/17 11:47

ご回答ありがとうございます。 「.git」を付けて、再度git remote add origin https://github.com/アカウント名/リポジトリ名.gitとしましたら、fatal: remote origin already exists.とエラーが出てしまった為、git remote rm originとして削除してから、再度、git remote add を行い、再登録しました。 そして、git pull origin masterとし、git push origin masterを行いました。 しかし、GitHubのリポジトリは質問させて頂いた現象により、追加されたフォルダやファイルが消えてはいないといった状況になっております...
querykuma

2019/08/17 11:58

git pull origin masterをしたらローカルがGitHubと同じになります。 ローカルにも追加されたフォルダやファイルがあるはずです。 それらのフォルダやファイルをローカルで削除し、コミットしてからgit push origin masterを行いましょう。コミットの際はgit add -Aやgit statusを試してみてください。 そうすればローカルと同じようにGitHub上でフォルダやファイルが削除されるはずです。
aae_11

2019/08/17 12:59

ご返信ありがとうございます。 何故、このような問題がおきていたか分かりました。 そもそも、ローカルとリモートで紐づけていたフォルダが違っていた為にこのような問題がおきてしまっていました... フォルダAは存在するけど、フォルダBは存在しないディレクトリでフォルダAのファイルを変更し、その変更をgithubに適用させようとした為、おかしなことになってしまっていました...
aae_11

2019/08/17 13:06 編集

つまり、勘違いでフォルダAのみがあるフォルダを今までgithubと紐づけていたフォルダだと勘違いし、フォルダAのファイルを編集し、その変更をGithubに適用させようとした為に、リモート上のフォルダの構成が崩れてしまったといった訳でした...
querykuma

2019/08/17 13:26

git pullすることで違うフォルダで編集していたことに気づけたわけですね。 git pullしてgit statusするように案内すれば良かったです。 解決できて良かったです。
guest

0

git push -f origin 8sgnkss:master

その8sgnkss:masterの位置はブランチ名を書く場所です。8sgnkss:masterはどーみてもブランチ名では有りません。

投稿2019/08/17 04:53

yumetodo

総合スコア5850

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

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

aae_11

2019/08/17 05:03

>ブランチ名を書く場所です この点についてなのですが、「8sgnkss」ここのローカルのsha1IDに関しましては、質問に載せて公開する為、適当なIDを記載しました。
yumetodo

2019/08/17 06:39

commit hashがgit pushで出てくる余地はありません。だからどーみてもブランチ名ではないと言ったのです。
yumetodo

2019/08/17 06:40

git pushはたしかにcommitをremote serverに送信しますが、それはあくまでbranchないしtagというcommitへのある種のブックマークである存在を送信する上での副産物です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問