我在Git中创建了一个新分支:
git branch my_branch
Run Code Online (Sandbox Code Playgroud)
推它:
git push origin my_branch
Run Code Online (Sandbox Code Playgroud)
现在说有人在服务器上做了一些更改,我想从中拉出来origin/my_branch.我做:
git pull
Run Code Online (Sandbox Code Playgroud)
但我得到:
You asked me to pull without telling me which branch you
want to merge with, and 'branch.my_branch.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
If you often merge with the same branch, you may want to
use something like …Run Code Online (Sandbox Code Playgroud) 我已经开始玩Git并遇到过"上游"和"下游"这两个词.我之前见过这些,但从未完全理解它们.这些术语在SCM(软件配置管理工具)和源代码的上下文中意味着什么?
你如何停止跟踪Git中的远程分支?
我要求停止跟踪,因为在我的具体情况下,我想删除本地分支,但不是远程分支.删除本地删除并将删除推送到远程也将删除远程分支:
我可以这么做吗git branch -d the_branch,以后我不会传播它git push吗?
如果我git push origin :the_branch以后再跑,它会传播吗?
出于某种原因,我现在无法推动,而我昨天可以做到.也许我搞砸了一些东西.
这是发生的事情:
当我使用git push origin master时

我的工作目录和远程存储库是什么样的:

有人知道切换和跟踪远程分支这两个命令之间的区别吗?
git checkout -b branch origin/branch
git checkout --track origin/branch
Run Code Online (Sandbox Code Playgroud)
我认为两者都跟踪远程分支,所以我可以将我的更改推送到原点上的分支,对吧?
有什么实际差异吗?
谢谢!
我正在尝试将我的一个项目推送到github,并且我一直收到此错误:
peeplesoft@jane3:~/846156 (master) $ git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
Run Code Online (Sandbox Code Playgroud)
所以我试了一下,得到了这个:
peeplesoft@jane3:~/846156 (master) $ git push --set-upstream origin master
fatal: Authentication failed
Run Code Online (Sandbox Code Playgroud)
另一个stackoverflow线程建议我尝试以下,结果令人失望.
peeplesoft@jane3:~/846156 (master) $ git push -u origin master
fatal: Authentication failed
Run Code Online (Sandbox Code Playgroud)
然后我尝试了这个:
peeplesoft@jane3:~/846156 (master) $ git config remote.origin.push HEAD
peeplesoft@jane3:~/846156 (master) $ git push
fatal: Authentication failed
Run Code Online (Sandbox Code Playgroud)
任何提示?
我通常通过ssh(screen和vim)在远程服务器上工作,我有一个Git存储库.有时我不上网,所以我的笔记本电脑上有一个单独的存储库(从我的遥控器克隆).
但是,我无法从远程端的这个存储库中取出,因为我通常在防火墙后面,或者我没有公共IP.
我已经读过,我应该只是推到一个裸存储库.我应该如何将更改推送到远程存储库?
我创建了一个用于测试Solaris和Sun Studio的本地分支.然后我把分支推到了上游.提交更改并尝试推送更改后:
$ git commit blake2.cpp -m "Add workaround for missing _mm_set_epi64x"
[solaris 7ad22ff] Add workaround for missing _mm_set_epi64x
1 file changed, 5 insertions(+)
$ git push
fatal: The current branch solaris has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin solaris
Run Code Online (Sandbox Code Playgroud)
为什么我要为此做一些特别的事情?
是否有任何合理的用例,有人会创建<branch>,推<branch>送到远程,然后声称提交<branch>不应该是<branch>?
我在Stack Overflow上关注了这个问题和答案:将一个新的本地分支推送到远程Git存储库并跟踪它.我猜它是另一个不完整或错误接受答案的例子.或者,它的另一个Git实例执行一项简单的任务并使其变得困难.
这是不同机器上的视图.分支显然存在,因此它被创建并推送:
$ git branch -a
alignas
* master
remotes/origin/HEAD -> origin/master
remotes/origin/alignas
remotes/origin/arm-neon …Run Code Online (Sandbox Code Playgroud) 我很难理解git-fetch的细微差别.我知道做一个fetch,将远程refs提取到本地跟踪分支.
我有几个问题:
是否有可能本地跟踪分支不存在?如果是,那么它会自动创建吗?
如果我执行fetch并指定非跟踪分支作为目标,会发生什么?
git-fetch的手册页指定:
git-fetch <options> <repository> <refspec>
Run Code Online (Sandbox Code Playgroud)我如何使用refspec从远程主站获取内容到其远程跟踪分支?我相信如果我现在的HEAD在主人身上并且我跑了,这可能是可能的
git fetch origin master
但是,我可以使用<+?src:dest>refspec来实现同样的目的吗?我认为这将有助于我更好地理解这些概念.
还有一个问题:
我的.git/config文件有以下行用于获取(仅显示相关行):
fetch = +refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)
有人可以解释这条线的确切含义吗?
git ×10
branch ×3
git-branch ×2
github ×2
definition ×1
git-checkout ×1
git-fetch ×1
git-push ×1
git-track ×1
terminology ×1
versioning ×1