2016-07-02 16 views
0

私はちょうどlinuxカーネルコードをクローンしました。そして、私は新しいブランチにチェックアウトしようとしました。新しくクローンされたgitリポジトリで、私は新しいブランチにチェックアウトできません

なぜ新しくクローンされたコードがいわゆるローカル変更を持つのか混乱していますか? 最後に、私は "git checkout -f -b xxx"を使用してローカルブランチを強制的に破棄して新しいブランチをチェックアウトしますが、強制的にではなく正常にチェックアウトするためのエレガントな方法があるかどうかは不思議です。

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 
Cloning into 'linux-stable'... 
remote: Counting objects: 5253622, done. 
remote: Compressing objects: 100% (1189462/1189462), done. 
remote: Total 5253622 (delta 4399195), reused 4796362 (delta 4030229) 
Receiving objects: 100% (5253622/5253622), 1005.30 MiB | 576.00 KiB/s, done. 
Resolving deltas: 100% (4399195/4399195), done. 
Checking connectivity... done. 
Checking out files: 100% (54401/54401), done. 

$cd linux-stable 

$ git checkout -b linux-4.2.y origin/linux-4.2.y 
error: Your local changes to the following files would be overwritten by checkout: 
     include/uapi/linux/netfilter/xt_RATEEST.h 
     net/netfilter/xt_TCPMSS.c 
Please, commit your changes or stash them before you can switch branches. 
Aborting 


$ git checkout -f -b linux-4.2.y origin/linux-4.2.y 
Checking out files: 100% (28688/28688), done. 
Branch linux-4.2.y set up to track remote branch linux-4.2.y from origin. 
Switched to a new branch 'linux-4.2.y' 
+1

あなたがチェックアウトを防ぐ変更が何であったかを確認しましたか?私は "壊れた"行末( '\ n'対 '\ r \ n') – user3159253

答えて

1

あなたの作業ディレクトリに変更が加えられているようです。この煩雑さを避けるために

、ちょうど特にターゲットブランチにクローン:

git clone \ 
-b linux-4.2.y \ 
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 
+0

これは非常に便利なヒントですが、私はまだローカルに変更されたファイルの根本原因を見つけることはできません。 – Zii

関連する問題