我已经开始与一些项目的朋友合作,他们使用heroku git存储库.
我几天前克隆了存储库,他们已经做了一些更改,所以我试图获取最新的更新
我运行了git pull --rebase这里所说的命令(这是正确的方法吗?):https://devcenter.heroku.com/articles/sharing#merging-code-changes
我收到以下错误:
$ git pull --rebase
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
我的猜测是我搞乱了代码,现在它要么我要么提交要么丢弃(存储意味着什么?)这些变化.这是发生了什么?如果是这种情况,我想放弃我可能做出的任何更改,只是从git存储库中获取更新的代码.
知道我能做什么吗?
Sch*_*eis 156
这样git status,这将显示哪些文件已更改.既然你声明你不想保留你可以做的改变git checkout -- <file name>或者git reset --hard去除改变.
在大多数情况下,git会告诉您如何处理更改.例如,您的错误消息说明了git stash您的更改.如果你想保留它们就是这样.拉动后,您将执行此操作git stash pop并重新应用您的更改.
git status 还有如何摆脱变化取决于文件是否为提交暂存. 
mko*_*bit 62
如果您想在执行rebase时保持工作更改,可以使用--autostash.从文档:
在开始rebase之前,根据需要隐藏本地修改(请参阅git-stash [1]),并在完成后应用存储.
例如:
git pull --rebase --autostash
Kos*_*sis 48
一般情况下,使用rebase拉动是一种很好的做法.
但是,如果您的索引不干净,即您已进行了尚未提交的更改,则无法执行此操作.
假设您要保留更改,可以执行此操作:
git stashgit stash apply stash@{0}或更简单git stash popIga*_* S. 27
首先从a开始
git status
查看您是否有任何待处理的更改.要丢弃它们,请运行
git reset --hard
agi*_*ult 18
如果你想自动隐藏你的更改并为每个 rebase 取消隐藏它们,你可以这样做:
git config --global rebase.autoStash true
Cpp*_*ase 12
这对我有用:
git fetch
git rebase --autostash FETCH_HEAD
你总能这样做
git fetch && git merge --ff-only origin/master
如果您有与上游更改冲突的未提交更改,或者(b)与stash/pull/apply相同的效果,您将获得(a)无变化:一个rebase,让您从HEAD获取最新更改并保留您未提交的更改原样.
当未暂存的更改是因为 git 试图修复文件上的 eol 约定时(就像我的情况一样),任何存储、检出或重置都不会使其消失。
但是,如果意图真的是变基并忽略未暂存的更改,那么我所做的就是在本地删除分支,然后再次检查它。
git checkout -f anyotherbranchthanthisone
git branch -D thebranchineedtorebase
git checkout thebranchineedtorebase
瞧!它还没有让我失望。
| 归档时间: | 
 | 
| 查看次数: | 181851 次 | 
| 最近记录: |