Git命令将远程分支与本地分支同步

时间:2015-06-24 12:43:45

标签: git

是否有同步远程和本地分支的命令?

例如,我已经从远程删除了几个使用命令git remote update --prune不再有用的分支。现在我在本地删除了这些分支。

如果没有相同分支的远程副本,是否有删除本地分支的命令?

2 个答案:

答案 0 :(得分:1)

git fetch --prune应该做你想要的。

答案 1 :(得分:0)

Git中没有用于此任务的内置命令。你必须用自己喜欢的语言写一个脚本。我将使用Powershell,但你总是可以把它变成一些奇特的* SH单线。

试验台

脚本:gist.github.com/tkirill/7c14331de4da814069af。它确实:

  1. Creates有两个分支的repo std::wstring:branch1和branch2。
  2. Clones将回购邮件发送到test-repo,然后转到此克隆并检出所有分支。最后一步有效地创建了相应的本地分支。
  3. Removes分支test-clonebranch1来源。
  4. Leaves您在branch2
  5. 删除分支

    脚本:gist.github.com/tkirill/0f0f1902beb0c0723582。它确实:

    1. Gets当地分支机构。
    2. Gets远程分支without远程名称。
    3. Removes远程not exists的每个本地分支。
    4. 正在运行实验

      test-clone

      最后一个命令的输出显示我们已删除.\test-rig.ps1 ..\remove-local-branches.ps1 branch1

      branch2

      但那不是结束

      如果你想要一个通用的解决方案,编写这样的脚本可能会非常棘手。例如,脚本从所有远程控制器获取分支,而不仅仅是源。您可能只想使用原点。

      但从我的观点来看,主要的问题是它可以删除未在开发中合并的本地分支。

      仅删除合并的分支

      我认为这正是你所需要的。合并的分支几乎没用。因为这个任务有很多脚本和别名,所以很常见。 Choose你最喜欢的:)对于Windows I wrote对应的posh-git扩展名。