web-dev-qa-db-ja.com

「git add」を返す「fatal:outside repository」エラー

私はちょうどgitの素晴らしい世界に入っています。 /var/www/myappというディレクトリにある、自分のプログラムに対して行った変更の束を提出する必要があります。

新しいディレクトリ/home/mylogin/gitcloneを作成しました。このディレクトリから、パブリックリポジトリに対してgit cloneを実行し、最新のコピーを作成することができました。

現在、作業フォルダー(/var/www/myapp)内のすべてのファイルを取得して、マスターリポジトリに「チェックイン」する方法を見つけようとしています。

/home/mylogin/gitcloneからgit add /var/www/myappを試しましたが、追加しようとしたフォルダーがリポジトリの外にあるというエラーが表示されます。

私が間違っていることについて、いくつかの指針を教えてもらえますか?また、マスターと異なるかどうかに関係なく、すべてを追加したいと思います。ありがとう。

22
dot

最初にクローンフォルダでブランチを作成できます(したがって、マスターは変更されません)

git branch [branch_name]

必要なファイルを古いフォルダーからクローンフォルダーにコピーした後。

完了したら、変更を追加/コミットし、 ブランチをマージ を「マスター」ブランチに追加します。次のようになります。

git add .
git commit -m "Comments"
git checkout master
git merge [new_branch]

これを試してください GitHubのチュートリアル

11
JudgeProphet

すべてのファイルを/ var/www/myappから/ home/mylogin/gitcloneに移動してから、git add . その後 git commit -m "Your message"

4
Catfish

これは、あなたが/home/mylogin/gitclone内でバージョン管理を行っており、gitがすべてを追跡するためですinsideそのフォルダー。このリポジトリ外の他のフォルダを追跡することはできません。

解決策は、サブモジュールを作成するか、ln -sを使用してシンボリックリンクを使用することです。

2
code ninja

リポジトリにいくつかのファイルまたはフォルダーを追加するには、git cloneで作成したフォルダーになければなりません。ローカルのgitフォルダーにアプリケーションをコピーして貼り付けてからgit add *を実行すると、git commit -m 'message'を使用してサーバーにコミットし、最後にサーバーに変更をプッシュできます。 git Push

1
Jeremy

Gitバージョン2.12.2にアップグレードすると、そのエラーが表示されたので、次のようなフルパスでファイルを追加しました。

git add c:\develop\project\file.text

フルパスを削除すると、次のように機能し始めます。

git add file.text
1
Pedro Lopes

Gitは、.gitディレクトリとルートフォルダー内のサブフォルダーを含むルートフォルダー内のファイルとフォルダーのみを追跡します。追加しようとしているフォルダーは、gitの範囲外です。

実際にやりたいことは、最初にgit checkout -b myappです。これは、クローンしたリポジトリのマスターブランチに基づいて新しいブランチを作成してチェックアウトします。次に、実際にすべてのファイルをコピーして、git commit -a -m "Short descriptive name about what you did"でコミットします。 -aに渡したパラメータgit commitは、リポジトリに対して行われたすべての変更を含めるためのものであり、-mは実際のコマンドにコミットメッセージを含めるためのものです。その後、書き込み権限がある場合はPushをメインリポジトリに戻すか、独自のパブリックリポジトリにプッシュするか、プッシュしないでください。

上記で説明したのは、Gitの基本です。これを読んでみてください book これはかなり説明的です。

0
Learath2

私のシナリオは、gitリポジトリのパスにシンボリックリンクがあり、「/ home/abc/GIT_REPO/my_dir/my_file」にファイルを追加するとgitがこのエラーをスローすることです。 「/ home」は実際には「/ devhome」へのソフトリンクです。

code ninja このケースをデバッグしようとしたとき、私にいくらかの光を与えました。

そこで、addコマンドを実行する前に、コマンドreadlink -f /home/abc/GIT_REPOを使用してターゲットディレクトリを取得しようとしました。

そして、すべてが魅力のように機能します!

0
Keith

このメッセージは、ファイル名が.gitignoreファイルにリストされている場合にも表示されます。

0
Romano