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

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

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

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

GitHub

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

Q&A

解決済

2回答

4012閲覧

既存の特定のファイルをディレクトリに残したままで、それ以外のファイルだけを git pullしたい。

退会済みユーザー

退会済みユーザー

総合スコア0

Git

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

GitHub

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

1グッド

1クリップ

投稿2016/06/25 14:02

GitHubを通じて、開発環境から本番環境にファイルを移そうとしています。

ただ、db.sqlite3というファイルは、既に本番環境で動いており、これについては開発環境からGitHubにもpushせず、もちろん本番環境にもpullしたくありません。

そのため、開発環境において、
.gitignoreファイルに下記の記述をしました。

*.sqlite3

更に、コマンドラインで、下記のように、db.sqlite3 ファイルをgitの管理から外しました。
git rm --cached db.sqlite3

既にGitHub上に、以前上げたdb.sqlite3が上がっていたので、Web上で削除しました。

その上で、開発環境で、下記のようにpushしました。
git add -A
git commit -m "recommit" -v
git push

db.sqlite3が、GitHubに上がっていないことは、Web上で確認しました。

その上で、本番環境で
git pull
をしたら、下記のエラーが出てしまいました。

remote: Counting objects: 7, done.
remote: Compressing objects: 100% (3/3), done.
Unpacking objects: 100% (7/7), done.
remote: Total 7 (delta 4), reused 7 (delta 4), pack-reused 0
From github.com:example/example
cfb1d08..50bd4b0 master -> origin/master
Updating 882d412..50bd4b0
error: The following untracked working tree files would be removed by merge:
db.sqlite3
Please move or remove them before you can merge.
Aborting

本番環境上、db.sqlite3がgitの対象となるディレクトリにあることが問題になっているのだと思います。
これを無視して、それ以外のファイルをpullしてくる方法はないでしょうか。

お分かりの方、ご教示頂ければ幸いです。
よろしくお願いいたします。

av-👍を押しています

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

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

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

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

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

guest

回答2

0

  • Gitの設定
    リポジトリの.git/config設定ファイルに
    [merge "ours"]
    name = "Keep ours merge"
    driver = true

  • リストgitattributesファイルの設定
    リポジトリのルートディレクトリに.gitattributesファイル作成し、以下の内容を書く
    hoge.txt merge=ours (merge=ours必須)

記載内容は.gitignoreと同様、ワイルドカードも使用可能

のようにすれば良いかと思います。

http://fengdj521.hatenablog.com/entry/2015/12/16/122023

ただ、pullするフォルダにsqliteファイルがあるというのは、なんだか気持ち悪いです。
自分なら、merge時に無視する設定をせずに、sqliteファイルを別のフォルダに配置します。

投稿2016/06/25 14:16

azurite2016

総合スコア69

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

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

退会済みユーザー

退会済みユーザー

2016/06/26 01:42

ご回答頂き、ありがとうございます。 おっしゃるとおり、一つのファイルだけ特別扱いするのも気持ち悪いですし、そのうち失敗しそうな気もします。 いろいろあれから検討したのですが、他のデータベース(postgreSQL)を利用してみようかと考えております。sqlite3は、webフレームワーク上、デフォルトでそれを使う設定になっていたのでそのまま使っていたのですが、本番環境で使うのはやめておいたほうがよいという意見もあったためです。
guest

0

ベストアンサー

直接的な回答になっているわけではないのですが、もし本番環境を一時的に止めても(止まっても)良いのであれば、

Please move or remove them before you can merge.

とある通り、一度別名にするか別フォルダ移動するかしてからgit pullすることはできるかと思います。

※ダウンタイムがゼロでないとダメな場合は、使える手段とは言えないので無視してください

投稿2016/06/25 14:10

attakei

総合スコア2738

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

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

退会済みユーザー

退会済みユーザー

2016/06/26 01:36

ご回答頂き、ありがとうございます。 db.sqlite3を別フォルダに移せば、うまく行きそうです。 しかし、特定のファイルだけをイレギュラーな対応を取ることもそのうち失敗しそうな気がしますし、そもそもsqlite3は本番環境で使用するには不安な面もあるという情報もありましたので、本番環境においては、postgreSQL等の別のデータベースの導入を進めてみようかと考えています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問