Visual StudioのGit for TFSについて何も得られません。
TFS上のGitで同僚のソリューションを複製し、コードの追加を開始しました。その後、自分が行った変更のために自分のブランチが必要であることに気づいたので、 リモートGitリポジトリに新しいローカルブランチをプッシュして追跡します の指示に従います
git checkout -b e4ctim
git Push -u Origin e4ctim
コードを変更すると、Visual Studioはコードファイルの横にあるおなじみの赤いチェックアイコンを表示し、変更がファイルのチェックアウトをトリガーしたことを確信させます。
そして、ファイルを保存すると、Visual Studioはアイコンを青い南京錠に戻します。赤のカチカチから青の南京錠へのこの変更は、変更がGitでローカルにチェックインされたことを意味すると想定しています。
しかし、変更されたファイルの履歴を見ると、何もありません!
変更をローカルにコミットし、TFSサーバーと同期したいです。
Visual Studioには変更はまったく表示されません。
コマンドラインから、コマンドを実行することでGitがすべての変更に気づいたことがわかります。
git status
コミットされたファイルや追跡されていないファイルについてはステージングされていない多くの変更を確認します.
Git book でだらしない
git add
より具体的に
git add -u .
コミットの準備ができているファイルをステージングしますが、 Gitリポジトリでアプリケーションを開発する(トラック、コミット) Visual Studioドキュメントの状態:
Q:Gitステージはどこですか?
A:経験豊富なGitユーザーであれば、Visual Studioがコマンドプロンプトとは異なる方法で変更を処理することに気付いたかもしれません。 「含まれる変更」セクションに段階的な変更が含まれているかどうか疑問に思われるかもしれません。実際、通常、Visual StudioはGitステージをバイパスします。変更をコミットすると、Visual Studioはそれらを同時にステージングしてコミットします。 1つの例外は、Gitリポジトリにファイルを追加するときに発生します。 Visual Studioは、この種の変更をステージングします。
Visual Studioは、変更を同時にステージングしてコミットします。しかし、なぜ追跡されたファイルに加えた変更を変更としてリストしないので、コミットすることができますか?
これは説明よりも回避策ですが、 ドキュメント "変更をコミットするとき、Visual Studioは同時にステージングとコミットを同時に行う"を無視すると、コマンドでステージングに変更を追加することがわかりました。
git add -u .
その後、Visual Studioが突然変更を認識し、ローカルでコミットしてTFSサーバーと同期できるようにしました。さらに、追加されたファイルに「新しいファイル」の緑色の十字を付け、追加のコミットとその後の同期を実行して、追加したものと削除したものをピックアップできることを発見しました。
それ以来、Visual Studioは私が期待することを行っています。ファイルに変更を加えると、ファイルはコミットウィンドウに変更済みとしてリストされます。
最初のgit add
の後までVisual Studioが変更の取得に失敗した理由はまだわかりませんが、少なくとも現在は動作しています。
この行を.gitignoreに追加する必要がありました。
[path to project]/node_modules/
どうやらVS2015は非常に長い道のりでクラッシュし、すべての希望をあきらめることにしました
ファイルを削除するmyProject\.git\index.lock
私の場合は修正しました。
私は同じ問題を抱えていて、次のことに気付きました:変更セットを表示するために、@ dumbledadが言ったように、Visual Studioはコマンドを実行します
git add -u
更新をステージングするために内部的に。変更セットに追加しようとしているファイルの一部が別のプロセスによって開かれている場合、gitコマンドは許可エラーを受け取ります。また、Visual Studioは変更を表示しません。
私の場合、別のアプリケーションによって開かれているレポジトリにドキュメントがあり、Gitの許可エラーのためにVisual Studioが変更を表示しませんでした。そのため、gitリポジトリのファイルのいずれかが他のアプリケーションによって開かれていないかどうかを確認してください。
VS 2015 Update 1を使用していますが、この問題も解決しています。さらに、VSの出力ウィンドウから、ソリューションフォルダーの下のVC.opendb
ファイルが別のプログラムによって占有されていることがわかりました。 this に従って、占有の問題を修正しました:*.VC.opendb
および*.VC.db
を.gitignore
ファイルに追加します。その後、すべてがうまくいきます。
Visual Studio Update 3でも同じ問題が発生していました。VSはローカルに保存していましたが、コミットできなかったため、変更を反映していませんでした。
Git for Windowsを https://git-for-windows.github.io/ (@fhiltonに感謝)からダウンロードし、開発者コマンドプロンプトを開き、ディレクトリをC:\ Repos\Scheduler(ソースコードの場所)。
次に、GET ADD -Uを実行し、次のエラーを受け取りました...
エラー:open( "WindowsServices\Scheduler.WindowServices.InstallLog"):許可が拒否されました
エラー:ファイルWindowsServices\Scheduler.WindowServices.InstallLogのインデックスを作成できません
致命的:ファイルの更新に失敗しました
他の人が言ったように、最も基本的なWindowsレベルのエラーであっても、Visual StudioのGITツールは静かに失敗するようです。さらに悪いことに、GITが完全に同期していることがわかります。当分の間、コマンドラインは確かにあなたの友人です。
参考記事! Git Bash(git add -u)を使用すると、問題の原因に近づくのに役立ちました。これまでVisual Studioに表示されていなかった変更をコミットした後、SQL Serverデータベースプロジェクトを使用しているため、途中でのみコミットが行われました。どうやら、Windows 10はjfmファイルを同じフォルダーに追加し始め、常に開いたままにし、VSがアクセスするのを防ぎます。解決策は、コミットする前に.gitignoreに追加することでした。
詳細については、このスレッドを参照してください。
[表示]> [出力]を開き、[出力の表示元]で[ソース管理-Git]を選択し、エラーを確認します。他の人が述べたように、Gitのエラーにより、MS Projectは変更を静かに無視します。
VS2013 Update 5とVS 2015の両方を新規インストールした新しいマシンでこの問題が発生しましたが、それがきっかけでした。その後、Git for Windowsをインストールすると、問題はなくなりました。 https://git-for-windows.github.io/