相关疑难解决方法(0)

设置git来拉动并推动所有分支

我想默认推送和拉出所有分支,包括新创建的分支.

我可以为它定义一个设置吗?

否则,当我在本地添加一个新分支并且我想从服务器中提取它时,最简单的方法是什么?

我创建了一个具有相同名称的新分支,并试图拉,但它不起作用.问我分支机构的所有远程配置.我该如何设置它.

git version-control branch push

572
推荐指数
8
解决办法
21万
查看次数

跟踪所有远程git分支作为本地分支

将单个远程分支作为本地分支进行跟踪非常简单.

$ git checkout --track -b ${branch_name} origin/${branch_name}
Run Code Online (Sandbox Code Playgroud)

将所有本地分支推送到远程,根据需要创建新的远程分支也很容易.

$ git push --all origin
Run Code Online (Sandbox Code Playgroud)

我想反过来.如果我在一个源上有X个远程分支:

$ git branch -r 
branch1
branch2
branch3
.
.
.
Run Code Online (Sandbox Code Playgroud)

我是否可以为所有远程分支创建本地跟踪分支,而无需手动创建每个分支?说出类似的话:

$ git checkout --track -b --all origin
Run Code Online (Sandbox Code Playgroud)

我用google搜索和RTM,但到目前为止已经上传了.

git branch

160
推荐指数
8
解决办法
7万
查看次数

在git中删除远程分支:一劳永逸地理解它

我今天在这里发帖的原因是因为我在命令行上看到的行为与我实际在网上阅读的行为不同。所以这让我很困惑。

这里有问题的两个命令是:

git branch -r -d origin/topic1
Run Code Online (Sandbox Code Playgroud)

git push origin :topic1
Run Code Online (Sandbox Code Playgroud)

到目前为止我的理解(不过我可能完全错了,我的大脑已经炸了):

  • 第一个应该删除跟踪引用远程分支
  • 第二个应该删除远程分支,但不删除跟踪引用(如果本地分支存在),尽管您不删除跟踪引用的原因似乎毫无意义,并且让我作为一个初学者感到困惑。

这是我最近遇到的一个场景。我刚刚克隆了一个具有两个远程分支的存储库:

origin/master
origin/develop
Run Code Online (Sandbox Code Playgroud)

我唯一的本地分支机构是:

master
Run Code Online (Sandbox Code Playgroud)

我想删除远程分支origin/develop,所以请注意:

Robert@COMP /c/Code/project (master)
$ git branch -rd origin/develop
Deleted remote branch origin/develop (was 9ff16e8).

Robert@COMP /c/Code/project (master)
$ git fetch
From github.com:username/project
 * [new branch]      develop    -> origin/develop
Run Code Online (Sandbox Code Playgroud)

如您所见,我尝试删除远程分支,并立即从源获取最新更改,但由于某种原因它重新创建了分支。我不知道为什么会这样做,我很困惑。我没有本地对应的分支origin/develop,所以我不知道它为什么这样做。

我想知道为什么会发生这种情况,而且(为了解决这个问题的更一般的标题,也许可以帮助其他人清理堆栈溢出以找到这些令人困惑的歧义的答案),我想对一些问题有更一般的答案:

  • 有两种方法可以删除远程分支。有什么真正好、简单的方法来记住在哪种情况下使用哪个?
  • 假设这很重要,那么相应的本地分支(对于远程分支)的存在如何影响如何删除远程分支的决定?
  • 本地和远程分支之间跟踪引用/关系的存在如何影响您选择删除分支的方式,以及哪种删除分支的方法也会清除跟踪引用?

git git-remote git-branch remote-repository

5
推荐指数
1
解决办法
699
查看次数