2016-04-05 2 views
2

Gitには開発とローカル開発ブランチというリモートブランチがあります。gitはいくつかの変更されたファイルのみを追加します

git status 
modified file1 
modified file2 
modified file3 

今私は(FILE2 FILE3とは、今後からではなく、追加されます)を追加し、コミットのみFILE1を、リモートブランチにプッシュしたい:私は3つのファイルが言うことができます修正しました。私はそれをプッシュしようとするが、リモートヘッドが私のローカルよりも先にいるので、gitはプッシュすることができません。その後、私はgit fetchgit rebaseを実行しようとしましたが、gitは私にuntrackedファイルがあると言います。 Gitはそれらを隠すように提案した。私はgitに新しく、これまでに知っているのはgit stashで、別のブランチを切り替える場合の作業上の変更を保存することです。私の場合は、私の支店を切り替えるつもりはありません。 git stashを続行するのは安全ですか?またはいくつかの他の方法がありますか?あなたの説明に感謝します。

答えて

1

プッシュする前に、あなたの変更をコミットする必要があります。ローカルで行われます:

#add files to specific commit 
git add file1 

# commit added files 
git commit -m "init commit" 

# stash file2 file3 
git stash 

# now, when working dir is clean you can safly pull updates from remote repo 
git pull 

# push your changes (your commit) to remote repo 
git push origin master 

#return file2 file3 changes 
git stash apply 
+0

現時点ではすべてのファイルをコミットしたくないと述べました。私は隠しがより良いオプションになると思っています... –

+0

OPに答えるには、必要なファイルだけを追加するように行を変更することができます。残りのコマンドは、OPが望んでいたものを正確に実行する必要があります。 – CyberneticianDave

+0

私がやりたいことはrabaseですが、変更した2つのファイルを追加していないため、私の作業ディレクトリがクリーンではありません。 – Lakshi

0

ファイルを選択してステージングすることができます。

Gitのでは
git add file1 
git commit -m "first bit of changes" 
git push 

、あなたはあなたがあなたのコミットを作ることができる非常に細かいレベルでファイルをステージングすることができます

例えば

、あなたが唯一のfile1を使用してだけのことをプッシュしたかったコミット最初に言わせて論理的な方法。質問の他の部分については

...

私はそれをプッシュしようが、リモートHEDはい

私の地元よりも アヘドあるので、Gitはプッシュすることはできません。これは間違いなくstashの良いユースケースです。

はこれを行います。

git stash 
git pull 
git stash pop 
+1

ここで十分ではありませんが、リセットする必要はありませんか? – CyberneticianDave

+0

はい、「プル」はほぼ確実に機能します。 OPが彼のトラッキングブランチが正しく設定されているかどうかは分かりませんでした。 –

+0

@Cyber​​neticianDave私は先に進み、プルに変更しました。 –

関連する問題