web-dev-qa-db-ja.com

BitBucketのGitリポジトリにプッシュするとファイルが破損します

これは2回発生しました。初めて4つまたは5つのファイルに。 2回目は1つだけでしたが、一度に1つしかプッシュしていませんでした。 Visual Studio2013を使用してPowerShellスクリプトを編集しています。 Gitがそれらを処理するとき、それらは単なるUTF-8ファイルであると思うので、これが関連するかどうかはわかりません。コミット時なのかプッシュ時なのかわかりませんが、ファイルがめちゃくちゃになっています。きれいなときの最初の数行の例:

$Start=Get-Date
$Global:Timings=@()
$Global:Timings+=1
#$Global:Timings+=2
function Stamp($msg){ $Global:Timings += @{Date=(Get-Date).addseconds(4);Message=$msg} }

私は仕事でそれを押しました、そして私が家に帰ってそれを引っ張ったとき、私は得ます: http://Pastebin.com/EgVzZZHs

漢字だと思ったら、新しいファイルがいっぱいです。スーパーユーザーはこれらの文字を許可しないため、Pastebinを使用する必要がありました。一部のファイル分析によると、元のファイルはUTF-8であり、新しいファイルはUTF-16ビッグエンディアンです。このファイルは、Notepad、SciTe、Visual Studio、WinMerge、およびTortoiseGitのツールでも同様に混乱しているように見えます。 (これが最後に起こったときの私の記憶に基づいて)疑っていますが、現時点では、作業中のディスク上のファイルに問題がないことを確認できません。 Gitのインデックスが台無しになるかどうかはわかりませんが、プルすると、良いファイルが悪いファイルに置き換えられると思います。どちらのクライアントもWindows7です。リモートリポジトリはBitBucket上にあります。たった一週間かそこらです。誰かが何が起こっているのか、そして/またはそれを防ぐ方法を知っていますか?私はこれについて非常に困惑しています。どうもありがとう!

1
Programmer Paul

これは古い質問だと思いますが、これは私にとって最初にGoogleで出てきました。

問題は、ファイルのエンコーディングがUTF-8以外のものであるということです。ただし、Bitbucketにプッシュする前にエンコーディングの切り替えが発生したと思います。ファイルの破損していないコピーがある場合は、SublimeTextまたはNotepad ++を使用してこれを簡単に修正できます。問題のあるファイルをSublimeTextで開き、正しいコードを貼り付けてから、[ファイル]-> [エンコードで保存]-> [UTF-8]コマンドを使用するだけです。次に、それをBitbucketにプッシュバックします。また、ファイルがプルされた後に混乱する場合でも、ファイルがBitbucketインターフェイスに正しく表示されることに気付きました。そのため、Bitbucketインターフェイスから直接コードをコピーできる場合があります。

https://stackoverflow.com/questions/17515768/git-messed-up-my-files-showing-chinese-characters-in-some-places

https://stackoverflow.com/questions/21289157/set-encoding-of-file-to-utf8-with-bom-in-sublime-text-

1