我已经重命名了目录,提交了它,我无法推动

时间:2014-11-19 12:09:20

标签: git

抱歉,我的问题可能有点像菜鸟,但我对GIT没有多少经验。我已经重命名了目录" build"对" build1",进行了改动,现在我无法推动,我得到的只是一条消息:

Counting objects: 11, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 514 bytes | 0 bytes/s, done.
Total 6 (delta 4), reused 0 (delta 0)
remote: From /git/rololo
remote:    8432750..b53923c  master     -> origin/master
remote: error: Your local changes to the following files would be overwritten by merge:
remote:         build/build.html
remote:         build/build.unity3d
remote: Please, commit your changes or stash them before you can merge.
remote: Aborting
remote: Updating 1d2fa90..b53923c

我现在该怎么做才能进行推动?

3 个答案:

答案 0 :(得分:2)

此时你可以做几件事。

  

<强> 1。存储您的更改 - &gt;更新分支 - &gt;弹出隐藏的变化

通过以下方式存储更改:

git stash save <message>

然后做一个拉

git pull origin master

然后弹出隐藏的更改

git stash pop <stash>

  

<强> 2。将更改提交到新分支 - &gt;更新主人 - &gt;将新分支合并为主分支

结帐新分行:

git checkout -b <new_branch>

将更改提交给新分支:

git commit -m <commit message>

结帐主人并提取更改:

git checkout master
git pull origin master

合并目录已删除的新分支:

git merge <new_branch>

答案 1 :(得分:1)

git fetch //您现在可以看到上游的当前状态。

此时,您可能希望在gitkgitg中可视化分支。

你可能处于这种情况:

-A-B-C-D  //Master
    \E-F  //Your branch, say you've done your renames in commit F

如何继续进行取决于您希望如何显示历史记录:

衍合

git rebase将你的分支(E-F)从你分散的地方(B)重新分配给主人(D)中的最新提交。您仍然需要解决与C-D

的任何冲突
-A-B-C-D-E-F

合并

git merge origin/master将更新从上游下拉到您的本地分支:

-A-B-C-D
    \E-F-CD'

此时您必须解决重命名冲突。 您现在在本地分支上有一个包含CD的合并提交。

git push

-A-B-C-D----G
    \E-F-CD'/

答案 2 :(得分:0)

在重命名目录之前,您似乎必须git pull,因为文件在该目录中已更改。