【发布时间】:2015-06-25 22:58:58
【问题描述】:
我可能遗漏了一些东西。请指出我的错误。
我有一个存储库。
主干称为master(显然)并包含许多文件。
我创建了一个名为 dev-17 的分支,并在其中添加了一个文件(名为 file17)。
现在,我在基于 Debian 的系统上做:
$ git fetch origin
$ git reset --hard origin/master
HEAD is now at 13e51c7 20150418.2030
$ git clean -f -d
$ git status
# On branch master
nothing to commit (working directory clean)
$
看起来不错。 ls 显示了我期望的所有文件。
然后我做:
$ git fetch origin
$ git reset --hard origin/dev-17
HEAD is now at 145e638 add file17
$ git clean -f -d
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
$
执行ls 表明添加的file17 确实存在。所以,显然我在dev-17 分支上。但是,为什么git status 说我在master?
现在解决真正的问题,在dev-17 分支上(编辑:上面似乎并没有真正将我带到 dev-17 分支,所以这个陈述是不正确的)这个当我想查看 file17 是否已更改时发生:
$ git --no-pager diff --name-only dev-17..origin/dev-17 -- ./file17
fatal: bad revision 'dev-17..origin/dev-17'
$
非常欢迎提出建议。
【问题讨论】:
-
git reset不切换分支。git checkout是您要查找的命令。 -
你为什么在这里使用
git reset --hard?这可能不是你想要做的...... -
@Jubobs :我正在另一个系统上编码并测试这个系统上的更改。我定期使用
git reset --hard来保持与远程代码的同步。我想我误认为这个命令(也)能够在分支之间切换。 -
真正的问题:
git branch -a给你什么?