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

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

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

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

GitHub

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

Q&A

解決済

1回答

1708閲覧

githubにpushしたファイルの内容が違う。

退会済みユーザー

退会済みユーザー

総合スコア0

Git

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

GitHub

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

1グッド

0クリップ

投稿2019/03/06 14:26

すでにpushしていたプロジェクトを変更したので、gitにpushしました。
コマンドは以下の通りです。

git add . git commit git push -f origin master

それからguthubにpushされたファイルを見たところ、

このように内容が入っていない状態(ファイルを生成したばかりの初期状態)で
複数のファイルがpushされていました。

// // FirstViewController.swift // TestApp // // Created by hoge on 2019/03/05. // Copyright © 2019 hoge. All rights reserved. // import Foundation

実際はこのFirstViewController.swiftではクラスなどを定義しています。

ローカルで定義している内容が一切反映されていないファイルや削除したはずの複数のファイルが
githubにpushされていました。

考えられる原因

複数のファイルを生成するときに
まだファイル名を決めていなかったので適当なファイル名を入力して生成しました。

その後正式なファイル名に変更して、正式名ではないファイルはディレクトリ内に残っていたので
それらを削除しました。
ですがそれらが履歴には残っているのかpushされていて、
今存在しているファイルの大半の内容が抜け落ちているといった状態です。

今存在しているローカルのプロジェクトのファイルだけをpushする方法が分からず困っています。
よろしくお願いします。

bochan2👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

まずリポジトリ上の不要なファイルは、git rmで削除してください。
あとは必要なファイルをコミット&プッシュするだけで良いと思います。

また、今後意図しないファイルをプッシュし内容にするには、以下の手順で確認しながらコミット&プッシュするのが良いと思います。

  1. git statusで変更のあるファイルを確認する。
  2. git diffでリポジトリとの差分を確認する。
  3. git add (ファイル名)で必要なファイルのみをステージングエリアに追加する。
  4. git commitでコミットする。
  5. git statusで最終確認する。
  6. git pushでリポジトリへプッシュする。

git add .は意図しないファイルをコミットしてしまう危険性があるので、もし使うなら慎重に使いましょう。

投稿2019/03/06 22:30

編集2019/03/07 01:17
nskydiving

総合スコア6500

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

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

退会済みユーザー

退会済みユーザー

2019/03/07 02:44 編集

>>まずリポジトリ上の不要なファイルは、git rmで削除してください。 ターミナル上で ということですか? ターミナル上でも同じだったので、 私の場合はFinderからディレクトリのファイル群を確認し、不要なファイルを削除しました。 ですがその後pushしても内容が入っていない状態のファイルが複数ありました。 そこで、 xcode上でpathが正しく通ってない(正式名だがゴミ箱にありディレクトリ内には無い)ファイルの存在に気が付きました。 それらを復帰したり、 ディレクトリ内のコードが入っていない状態のファイルを1つずつ正式名に変更したり正しいコードを入力し $ git add . $ git commit -m "変更” $ git push -f origin master を叩き、 無事ローカルでの変更をpushできたことをguthub上で確認できました。 >>※git add .は意図しないファイルを 今後も複数のファイル名を生成後に変更する可能性が高いので、 今回はファイル1つずつステージングせずに まとめてgit add .コマンドを使ってみました。 慎重に扱う必要があるということ、教えていただきました。 回答いただいた各コマンドで、 その時の状態を確認しながらpush前まで操作できたので、勉強になりました。 ありがとうございました。
nskydiving

2019/03/07 04:21 編集

> ターミナル上で ということですか? そうです。 Finder 上で削除しても、リポジトリ上のファイルは消せないので git rm コマンドを使用する必要があります。
退会済みユーザー

退会済みユーザー

2019/03/07 02:58

調べても分からなかったのですが、 ローカルリポジトリの中を見るコマンドはありますか? 中を見て、そこにある不要なファイルを確認し削除するのでしょうか? それとも現在ローカルに無いがgithubにpushされてしまっているファイル名を指定して git rm ファイル名 で削除するのですか?
nskydiving

2019/03/07 04:23

> ローカルリポジトリの中を見るコマンドはありますか? 「git log」でコミットIDを確認して、「git checkout (コミットID)」 でチェックアウトすると内容を確認できます。 > 中を見て、そこにある不要なファイルを確認し削除するのでしょうか? > > それとも現在ローカルに無いがgithubにpushされてしまっているファイル名を指定して > git rm ファイル名 で削除するのですか? リモートリポジトリのファイルを直接削除することもできますが、「git pull」して「git rm (削除したいファイル)」とするのが一般的のような気がします。
退会済みユーザー

退会済みユーザー

2019/03/07 10:38

>>「git log」でコミットIDを確認して、... 知らなかったので助かりました。後で確認してみます。 >>リモートリポジトリのファイルを直接削除する... remoteのbranch(私の場合origin master)をfetch、mergeしてからのgit rmなら 最新のリモートリポジトリの状態ですし、そこから不要なファイルを削除してpushできますね。 ご親切にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問