2016-04-05 3 views
2

У меня есть удаленная ветка в Git, называемая разработкой, а также локальная ветвь развития. Я модифицировал позволяет сказать 3 файла:git добавить только некоторые измененные файлы

git status 
modified file1 
modified file2 
modified file3 

теперь я хочу добавить и совершить только file1 и подтолкнуть ее к удаленной ветви (file2 и file3 будут добавлены позже, но не сейчас). Я пытаюсь подтолкнуть его, но git не позволяет нажимать, потому что дистанционная голова впереди, чем моя локальная. Затем я попытался сделать git fetch и git rebase, но потом, 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

Было заявлено, что он не хотел передавать все файлы в это время. Я думаю, что stash будет лучшим вариантом здесь ... –

+0

Чтобы ответить OP, вы можете изменить строку добавления, чтобы включить только один требуемый файл, остальные команды должны делать именно то, что хотел OP. – CyberneticianDave

+0

то, что я хочу сделать, это рабаза, но мой рабочий каталог не чист, потому что я не добавил 2 файла, которые я изменил, вот почему я спрашиваю о statch ?? – Lakshi

0

Вы можете выборочно создавать файлы.

Например, предположим, что в первом совершают вы только хотели использовать file1 и нажать только что:

git add file1 
git commit -m "first bit of changes" 
git push 

С Git, вы можете организовать файлы на очень детальном уровне, который позволяет обработать ваши коммиты в логичным способом.

Что касается другой части вопроса ...

Я пытаюсь протолкнуть его, но мерзавец не позволяет нажать, потому что удаленный Hed является Ахедом, чем мой местного

Да , это, безусловно, хороший прецедент для stash.

ли это:

git stash 
git pull 
git stash pop 
+1

Не было бы тянуть здесь достаточно, без необходимости сброса? – CyberneticianDave

+0

Да, 'тянуть' почти наверняка будет работать. Просто не был уверен, что у OP были правильные настройки отслеживания ... –

+0

@CyberneticianDave Я пошел дальше и поменял его на 'pull' –

Смежные вопросы