web-dev-qa-db-ja.com

Visual Studio TFS Gitに変更が表示されない

Visual StudioのGit for TFSについて何も得られません。

TFS上のGitで同僚のソリューションを複製し、コードの追加を開始しました。その後、自分が行った変更のために自分のブランチが必要であることに気づいたので、 リモートGitリポジトリに新しいローカルブランチをプッシュして追跡します の指示に従います

git checkout -b e4ctim
git Push -u Origin e4ctim

コードを変更すると、Visual Studioはコードファイルの横にあるおなじみの赤いチェックアイコンを表示し、変更がファイルのチェックアウトをトリガーしたことを確信させます。

VS red-tick

そして、ファイルを保存すると、Visual Studioはアイコンを青い南京錠に戻します。赤のカチカチから青の南京錠へのこの変更は、変更がGitでローカルにチェックインされたことを意味すると想定しています。

VS blue-lock

しかし、変更されたファイルの履歴を見ると、何もありません!

No history

変更をローカルにコミットし、TFSサーバーと同期したいです。

Visual Studioには変更はまったく表示されません。

VS TFS Changes

コマンドラインから、コマンドを実行することでGitがすべての変更に気づいたことがわかります。

git status

コミットされたファイルや追跡されていないファイルについてはステージングされていない多くの変更を確認します.

git status cmd

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は、変更を同時にステージングしてコミットします。しかし、なぜ追跡されたファイルに加えた変更を変更としてリストしないので、コミットすることができますか?

59
dumbledad

これは説明よりも回避策ですが、 ドキュメント "変更をコミットするとき、Visual Studioは同時にステージングとコミットを同時に行う"を無視すると、コマンドでステージングに変更を追加することがわかりました。

git add -u .

その後、Visual Studioが突然変更を認識し、ローカルでコミットしてTFSサーバーと同期できるようにしました。さらに、追加されたファイルに「新しいファイル」の緑色の十字を付け、追加のコミットとその後の同期を実行して、追加したものと削除したものをピックアップできることを発見しました。

それ以来、Visual Studioは私が期待することを行っています。ファイルに変更を加えると、ファイルはコミットウィンドウに変更済みとしてリストされます。

最初のgit addの後までVisual Studioが変更の取得に失敗した理由はまだわかりませんが、少なくとも現在は動作しています。

52
dumbledad

この行を.gitignoreに追加する必要がありました。

[path to project]/node_modules/

どうやらVS2015は非常に長い道のりでクラッシュし、すべての希望をあきらめることにしました

15
John

ファイルを削除するmyProject\.git\index.lock私の場合は修正しました。

6
anion

私は同じ問題を抱えていて、次のことに気付きました:変更セットを表示するために、@ dumbledadが言ったように、Visual Studioはコマンドを実行します

git add -u 

更新をステージングするために内部的に。変更セットに追加しようとしているファイルの一部が別のプロセスによって開かれている場合、gitコマンドは許可エラーを受け取ります。また、Visual Studioは変更を表示しません。

私の場合、別のアプリケーションによって開かれているレポジトリにドキュメントがあり、Gitの許可エラーのためにVisual Studioが変更を表示しませんでした。そのため、gitリポジトリのファイルのいずれかが他のアプリケーションによって開かれていないかどうかを確認してください。

5
Gus Rodriguez

VS 2015 Update 1を使用していますが、この問題も解決しています。さらに、VSの出力ウィンドウから、ソリューションフォルダーの下のVC.opendbファイルが別のプログラムによって占有されていることがわかりました。 this に従って、占有の問題を修正しました:*.VC.opendbおよび*.VC.db.gitignoreファイルに追加します。その後、すべてがうまくいきます。

3
Tong Su

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が完全に同期していることがわかります。当分の間、コマンドラインは確かにあなたの友人です。

1
Quorfee

参考記事! Git Bash(git add -u)を使用すると、問題の原因に近づくのに役立ちました。これまでVisual Studioに表示されていなかった変更をコミットした後、SQL Serverデータベースプロジェクトを使用しているため、途中でのみコミットが行われました。どうやら、Windows 10はjfmファイルを同じフォルダーに追加し始め、常に開いたままにし、VSがアクセスするのを防ぎます。解決策は、コミットする前に.gitignoreに追加することでした。

詳細については、このスレッドを参照してください。

Visual Studio 2015データベースプロジェクトディレクトリには拡張子jfmのファイルが含まれています

0
JERKER

[表示]> [出力]を開き、[出力の表示元]で[ソース管理-Git]を選択し、エラーを確認します。他の人が述べたように、Gitのエラーにより、MS Projectは変更を静かに無視します。

0
Sergey Gussak

VS2013 Update 5とVS 2015の両方を新規インストールした新しいマシンでこの問題が発生しましたが、それがきっかけでした。その後、Git for Windowsをインストールすると、問題はなくなりました。 https://git-for-windows.github.io/

0
fhilton

それから私は変更を行おうとしていましたが、ファイルは影響を受けません...これには簡単な解決策があります。主な問題は、gitがファイルを無視してファイルを無視することです。

インスタンスD:// reposのローカルリポジトリを開き、必要なファイルを探します

-> D://repos/project1/HomeViewModel.cs

->右クリックしてGit Extentionsをクリックします

-> [+ Add Files]を選択します

enter image description here

->その後強制オプション

enter image description here

-> [Addfiles]をクリックします。ここで、変更にファイルが追加されます。

0
Venkata Ramana