我无法将我的更改推送到远程服务器(最新)

时间:2015-01-06 14:32:55

标签: git github version-control

以下是所有需求:

我有一个名为 /fix/version-1.x 的远程分支(修复分支),它有两个提交:

  • 用户A完成的第一次提交
  • 用户B(Me)的第二次提交

原来这个分支不正确(更准确地说是我的第二次提交):一个文件上有一些实现错误

作为第一步:

1-我已经下载了这个分支(带有两个提交)

所以作为第一反应,我对这个文件进行了简单的检查,以便进行上一次提交(第一次),因为那里没有实现错误。

2-我检查了第一次提交(仅适用于此文件)

git checkout 'commit' file/to/restore

3-我得到'detached HEAD' git branch command

4-我为这个文件做了更改(更正)

5- git add file/to/restore

6- git status OK

7-我使用新的消息git commit -m "solve implementation error problem"

进行了提交

当我将本地分支推送到远程服务器时 8- git push remote fix/version-1.x

它告诉我,每件事都是最新的(已经更新)无事可做!!!

但是当我在没有将文件签出到先前状态(第一次提交)的情况下工作时,即我直接在此分支上进行了更改并进行了提交,然后推送到远程服务器,每个东西都正常工作,我在远程服务器上有新的提交(第三个)。

问题似乎来自这个独立的头?我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

  

似乎问题来自这个独立的头

事实上。 git checkout 'commit' -- file/to/restore应该只重置该特定文件而不分离HEAD detached HEAD status必须来自第1步。

第一步应该是:

git clone url/remote/repo/
cd repo
git checkout fix/version-1.x

该本地分支将自动链接到其upstream branch 来自git checkout man page

git checkout <branch>
  

如果找不到<branch>但在一个遥控器(称为<remote>)中确实存在一个匹配名称的跟踪分支,则视为等效于:

git checkout -b <branch> --track <remote>/<branch>

然后您可以继续git checkout 'commit' -- file/to/restore