私はちょうどgitの素晴らしい世界に入っています。 /var/www/myapp
というディレクトリにある、自分のプログラムに対して行った変更の束を提出する必要があります。
新しいディレクトリ/home/mylogin/gitclone
を作成しました。このディレクトリから、パブリックリポジトリに対してgit clone
を実行し、最新のコピーを作成することができました。
現在、作業フォルダー(/var/www/myapp
)内のすべてのファイルを取得して、マスターリポジトリに「チェックイン」する方法を見つけようとしています。
/home/mylogin/gitclone
からgit add /var/www/myapp
を試しましたが、追加しようとしたフォルダーがリポジトリの外にあるというエラーが表示されます。
私が間違っていることについて、いくつかの指針を教えてもらえますか?また、マスターと異なるかどうかに関係なく、すべてを追加したいと思います。ありがとう。
最初にクローンフォルダでブランチを作成できます(したがって、マスターは変更されません)
git branch [branch_name]
必要なファイルを古いフォルダーからクローンフォルダーにコピーした後。
完了したら、変更を追加/コミットし、 ブランチをマージ を「マスター」ブランチに追加します。次のようになります。
git add .
git commit -m "Comments"
git checkout master
git merge [new_branch]
これを試してください GitHubのチュートリアル 。
すべてのファイルを/ var/www/myappから/ home/mylogin/gitcloneに移動してから、git add .
その後 git commit -m "Your message"
。
これは、あなたが/home/mylogin/gitclone
内でバージョン管理を行っており、gitがすべてを追跡するためですinsideそのフォルダー。このリポジトリ外の他のフォルダを追跡することはできません。
解決策は、サブモジュールを作成するか、ln -s
を使用してシンボリックリンクを使用することです。
リポジトリにいくつかのファイルまたはフォルダーを追加するには、git clone
で作成したフォルダーになければなりません。ローカルのgitフォルダーにアプリケーションをコピーして貼り付けてからgit add *
を実行すると、git commit -m 'message'
を使用してサーバーにコミットし、最後にサーバーに変更をプッシュできます。 git Push
Gitバージョン2.12.2にアップグレードすると、そのエラーが表示されたので、次のようなフルパスでファイルを追加しました。
git add c:\develop\project\file.text
フルパスを削除すると、次のように機能し始めます。
git add file.text
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 これはかなり説明的です。
私のシナリオは、gitリポジトリのパスにシンボリックリンクがあり、「/ home/abc/GIT_REPO/my_dir/my_file」にファイルを追加するとgitがこのエラーをスローすることです。 「/ home」は実際には「/ devhome」へのソフトリンクです。
code ninja このケースをデバッグしようとしたとき、私にいくらかの光を与えました。
そこで、addコマンドを実行する前に、コマンドreadlink -f /home/abc/GIT_REPO
を使用してターゲットディレクトリを取得しようとしました。
そして、すべてが魅力のように機能します!
このメッセージは、ファイル名が.gitignoreファイルにリストされている場合にも表示されます。