2016-08-17 13 views
1
Scenario: 
Bitbucket: 
    file1 
    file2 
    file3 

Local: 
    file1 - person1 is working on it 
    file2 - person2 is working on it 
    file3 - common with personal hardcoded configuration 
    untracked files 

person1が変更をファイル1にコミットしてプッシュします。 person2がfile2、file3、およびuntrackedファイルをリセットせずにローカルのfile1を更新する方法は? 私はそれをやろうとしていますが、まだ簡単な方法は見つけられません。おかげさまで Gitローカルアップデートで少数のファイルを無視する(.gitignoreではない)

+0

:あなたは後でフラグの設定を解除したい場合は

git update-index --skip-worktree path/to/file2 

が、代わりに--no-skip-worktreeオプションを使用しますあなたはサーバーに新しい変更をプッシュし、ファイル群全体の代わりにファイル1だけをプッシュします。 どのようにファイルをgitにプッシュしますか? – gurmandeep

答えて

1

リモートリポジトリから新しいコミットをフェッチするときに、ファイルが更新されません。 file2file3(私はと仮定していますが、となっています)、skip-worktreeフラグを設定します。そうすれば、Gitはあなたの作業ディレクトリでそれらを更新しません。 documentationから

- [無]スキップworktree
これらのフラグのいずれかが指定されると、 パスに記録されたオブジェクト名が更新されません。

もっとspecifically

それはスキップworktreeをとしてマークされている場合、エントリを読んで、それからGitの は、その作業ディレクトリのバージョンが最新であるし、代わりに インデックスバージョンを読んふり。

あなたはコマンドを使用して、特定のファイルにskip-worktreeフラグを設定することができます

git update-index --no-skip-worktree path/to/file2 
+1

ありがとう、私はスキップされたすべてのファイル "git ls-files -v。| grep^S"をリストするのにこの便利なコマンドを見つけました。 – faber

+0

もう1つ、それ以降は何を使用しますか?フェッチとリセット? – faber

+0

'skip-worktree'フラグを解除した後ではどういう意味ですか? –

関連する問題