我创建了一个别名来随时追踪我的跟踪分支。这是我.gitconfig文件中[alias]
部分的当前行:
catchup = !CURRENTBRANCH=$(git symbolic-ref --short HEAD) && echo Currently on $CURRENTBRANCH - switching to $1 && git checkout $1 && git merge origin/$1 && echo Going back to $CURRENTBRANCH && git checkout "$CURRENTBRANCH"
我按照以下方式使用它(例如):
git catchup new_design
这段代码的结果可能是(例如):
Currently on integration
Switched to branch 'new_design'
Your branch is behind 'origin/new_design' by 1 commit, and can be fast-forwarded.
Updating c82f7db..51eea8a
Fast-forward
themes/theme1/css/styles.less | 17 +++++++++++++++++
themes/theme1/js/app.js | 6 +++---
2 files changed, 20 insertions(+), 3 deletions(-)
Going back to integration
error: pathspec 'new_design' did not match any file(s) known to git.
我已经尝试在别名中使用双引号和不使用双引号的最后一个命令,结果相同。有人知道如何解决这个错误吗?对于那些可能建议使用 "git pull" 的人来说,它不能解决我的问题,并且需要输入密码。如果我最近使用了 "git fetch",并且不需要返回到远程仓库,则可以使用此别名。值得一提的是,我在 Windows 7 上运行 git bash。
fatal: Missing branch name; try -b
,然后如果我使用git checkout -t origin/$1
(看起来更正确),我会得到fatal: a branch named 'new_design' already exists
。 - mwottongit checkout
前添加一个git branch -a
吗?(以检查合并后 git 认为你在哪个分支上) - VonCgit catchup new_design
中的new_design
)附加到命令字符串的末尾?这意味着最后一个命令实际上是git checkout integration new_design
,从而导致出现此错误消息。 - Philipp Wendler