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

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

ただいまの
回答率

89.05%

gitで管理している内容を一旦、初期状態にし、再度、add, commitする方法

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 2,132

asn

score 20

gitでinit, add, commitし管理してのですが、その中の一つのファイルを削除し、同じ名前のファイルと当該フォルダに移動したところ、それが取り込まれず、おかしな状態となりました。
一旦、全て初期状態にし、最初から行おうと思うのですが、.gitを削除するだけで良いのでしょうか。
尚、githubにもpushしているので、そのあたりも含め、初期状態にする方法と教えていただければと思います。
宜しくお願いします。

詳細について。
1.目的はgithub pagesでサイトを公開。
2.このため、githubでリポジトリ作成。
3.ssh公開鍵を登録
4.ローカル側(Mac)でgit init
5.フォルダをgithub上のリポジトリに紐付け
$ git remote add origin .....github.io.git
6.commiとpush実施
$ git add .
$ git commit -m "first commit"
$ git push origin master
7.作成物は、index.htmlとcssと画像のみ。
8.アップロードは出来、github pagesで表示も正しくできた。
9.なお、開発作業はgitとは別のフォルダ下で行っていた。
github pagesにアップあうるため、新たにフォルダを作成し、git initした次第。
10.その流れもあって、cssの誤りを作業フォルダ下のソースで行っていた。
11.修正版をgitに反映する際、git管理下のソースを削除し、作業フォルダのソースを移送。
12.その後、add . と commitをしたところ、エラーが発生。
エラー内容はよく把握できていません。
13.pushしたが、github pagesにcssが全く反映されていない状況。
14.ただし、リポジトリは修正版が登録されている模様。
15.git reset --hard 実施後、再度、add とcommitをしなおしたが、状況変わらず。
16.なお、再度、git下のソースを修正し、addとcommitしたが、以下のメッセージあり。
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly. Run the
following command and follow the instructions in your editor to edit
your configuration file:

git config --global --edit

After doing this, you may fix the identity used for this commit with:

git commit --amend --reset-author
17.「12.」でも出ていたような気がします。

原因と対処が知りたいのですが、時間的なこともあり、また、ソースは別フォルダにあるので、一旦、すべて無かったもの、「4.」を行う前の状態にできればと思い、投稿させていただきました。

長文となりすみませんが、以上です。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • KiyoshiMotoki

    2016/11/18 19:58 編集

    「おかしな状態となりました」だけでは、状況が分かりません。どのようなコマンドを実行したところ、どのような結果になったのかを、エラーメッセージが表示されたのなら、それを追記してください。 https://teratail.com/help/question-tips#questionTips3-4

    キャンセル

  • KiyoshiMotoki

    2016/11/18 19:58 編集

    また、貴方の意図する「初期状態」がどのような状態なのかも、具体的に説明してください。さもないと、見当違いな(そして取り返しのつかない)回答が付く可能性があります。具体的には、リモートリポジトリに対して何をしたいのか、ローカルのコミット履歴をどのようにしたいのか、などです。 https://teratail.com/help/question-tips#questionTips3-3

    キャンセル

  • asn

    2016/11/18 20:26

    済みません。状況を記載します。

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2016/11/18 20:57

    forceオプションつけるだけでいいと思うが

    キャンセル

回答 1

checkベストアンサー

0

詳細の追記、ありがとうございます。

「4.」を行う前の状態にできれば

ということでしたら、

.gitを削除

で OK です。

ただし、次にGithubに変更をプッシュする際はgit pushコマンドに-fオプションを追加してください。

git push -f origin master 


こうすることで、リモートリポジトリ(Github上のリポジトリ)のコミット履歴が、ローカルリポジトリのもので強制的に上書きされます。
(一度git push -fを実行したら、その次 以降は-fオプション無しで OK です。)


また、

Your name and email address were configured automatically based...

というエラーメッセージが表示される理由は、ローカルリポジトリにGit のユーザー名・メールアドレスが設定されていないためです。
git logコマンドなどでコミット履歴を見ると、コミットした者のユーザー名が Mac のアカウント名になっているはずです)

ローカルリポジトリに移動し、以下のコマンドを実行することで、次回からは発生しなくなるはずです。

git config user.name "(Githubのユーザー名)"
git config user.email "(Githubに登録しているメールアドレス)"

もし、お使いの Mac上の全てのローカルリポジトリに同じ設定を適用したいなら、
上記git configコマンドに--globalオプションを付けて、実行してください。


回答からは離れますが、追記いただいた操作内容について、確認させてください。

手順"4."と手順"9."でgit initしたフォルダは、それぞれ別の場所でしょうか?

であれば、それが今回、手順"12."でエラーが発生した原因と思われます。
手順"9."のリポジトリにリモートリポジトリのコミット履歴を取り込まずにファイルを修正し、
プッシュしようとしたように見受けるためです。

もし、↑の通りであれば、asn様はGitの使い方そのものを誤解している可能性があります。
その場合、まずは以下のサイトの"入門編"と"発展編"に、一通り目を通してみることをお勧めします。
http://www.backlog.jp/git-guide/
(サイト名が人をバカにしていますが、他意はないので悪しからずw)

上のリンク、改めて読んでみると、具体的なコマンドの記載が少ない上に(バックログとの連携という)余計な情報も載っているので、かえって分かりにくいかも知れません。

ですので、公式のドキュメントも紹介させていただきます。
https://git-scm.com/book/ja/v2

難しい言葉が多くて大変かも知れませんが、2章と3章を読めば、Git に対する理解が深まると思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/18 22:16

    回答ありがとうございます。
    助かりました。
    修復は、以下と理解しました。
    1. .git 削除
    2. git initから(前述「4.」)から実施で、push -f で実行。
    また、疑問点についても回答いただき、ありがとうございます。

    以下、コメントさせていただきます。
    1. 追加操作の件ですが、init は「4.」の1回だけです。それ以前のワークフォルダでは、git 管理で行っておらず、「4.」の時点で移送し、その後、git init しました。ただ、それまでの環境上の経緯もあり、作業をワークフォルダ側で行ったのがそもそもの間違いと認識しています。
    2. エラーメッセージの件ですが、このような仕様(ローカルリポジトリにGit のユーザー名・メールアドレスが設定要)は、以前からそうだったのでしょうか?
    記載していただいたサイトを参考に勉強したいと思います。
    ありがとうございました。

    キャンセル

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

  • ただいまの回答率 89.05%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る