相关疑难解决方法(0)

删除跟踪分支不再在远程

是否有一种简单的方法可以删除远程等效不再存在的所有跟踪分支?

例:

分支机构(本地和远程)

  • 产地/主
  • 产地/漏洞修复,一个
  • 产地/漏洞修复-B
  • 产地/漏洞修复-C

在本地,我只有一个主分支.现在我需要处理bug-fix-a,所以我检查它,处理它,并将更改推送到远程.接下来我用bug-fix-b做同样的事情.

分支机构(本地和远程)

  • 漏洞修复,一个
  • 漏洞修复-B
  • 产地/主
  • 产地/漏洞修复,一个
  • 产地/漏洞修复-B
  • 产地/漏洞修复-C

现在我有本地分支机构master,bug-fix-a,bug-fix-b.Master分支维护者将我的更改合并到master中并删除他已经合并的所有分支.

那么现在的状态是:

分支机构(本地和远程)

  • 漏洞修复,一个
  • 漏洞修复-B
  • 产地/主
  • 产地/漏洞修复-C

现在我想调用一些命令删除分支(在本例中为bug-fix-a,bug-fix-b),这些分支不再在远程存储库中表示.

它会像现有的命令git remote prune origin,但更像是git local prune origin.

git git-branch

996
推荐指数
25
解决办法
38万
查看次数

git fetch origin --prune不删除本地分支?

有一次,我认为git fetch origin --prune删除了服务器上不再存在的本地分支.不知何故,这不是我目前的经历.

我运行了这个命令,并没有删除本地分支.目前尚未检出.我跑去git branch -vv检查这个信息,我明白了

feature/MyGreatFeature           f30efc7 [origin/feature/MyGreatFeature: gone]
Run Code Online (Sandbox Code Playgroud)

所以似乎知道它已经消失了.为什么不删除我的本地分支?

运行 git version 2.7.4 (Apple Git-66)

git git-fetch

38
推荐指数
4
解决办法
3万
查看次数

Git分支在拉取或提取后未显示在“ git分支”中,但“ git checkout”有效...?

将我在新分支上的最新工作提交branchname到机器A上的本地git存储库后,我将该工作推送到了我的gitlab远程存储库

$ git push origin branchname 
Run Code Online (Sandbox Code Playgroud)

master分行已经与远程回购同步。所有分支都显示在我的gitlab列表上的远程仓库中。

我后来去了机器B。我首先做了一个

$ git pull origin master 
Run Code Online (Sandbox Code Playgroud)

并且master已更新,但是branchname当我键入时git branch,我的新分支没有显示,历史树中也没有新的另一个分支。我去了这篇文章,并按照第一个答案的指导。另一个“ git分支”仍然没有显示我的其他分支。一时兴起,我只是想做

$ git checkout branchname 
Run Code Online (Sandbox Code Playgroud)

它在那里,并签出了罚款。git branch然后,一条命令在我的分支列表中显示了master和branchname。我对另一个分支做了同样的事情,然后在git branch命令之后它也出现在分支列表中。

这种操作是否是正常的git行为?我想知道的主要事情是您是从远程回购中提取还是获取以更新必须知道远程分支的先前知识的本地回购,为什么它们在git branch命令执行期间不显示?而且,当我在看完之后看不到它们时,为什么还能检出它们git branch

这个传奇类似于一个,但我的树枝,实际上是有,只是没有表现出以下的Git分支的命令,直到我检查出来。

git version-control git-fetch git-remote git-branch

4
推荐指数
1
解决办法
3851
查看次数

如何解决“您的分支比1提交早于'origin / master'。”?

我在我的计算机上有一个叉子的存储库的本地结帐(来自github)。因此在github上,我创建了一个fork,并进行了检查。

现在,我希望本地结帐与原始github存储库相同(我从中创建了fork)。我将原始存储库添加到了本地存储库(名称为“ orig”)中,并执行以下操作:

git pull orig master
Run Code Online (Sandbox Code Playgroud)

但是,git status告诉我

On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)

git diff还是git diff origin/master什么也没显示。

有没有办法使本地结帐等于原始master分支中的内容(而无需删除本地存储库,github fork,重新派生,重新签出...)?

我不在乎是否有任何未提交的更改或任何东西。我希望本地结帐等于原始仓库...

git github

4
推荐指数
1
解决办法
5154
查看次数

一键将本地git repo与远程同步,放弃本地更改/提交

我不是git专家,所以这看起来像是一个愚蠢的问题。

我有本地和远程存储库,我想将本地与远程存储库同步。我有许多本地更改,隐藏的更改,还有一些尚未推送到远程的提交。

一种方法是删除所有本地更改(使用git clean),还原提交,然后fetch/pull从远程删除。但是我认为必须有一些命令可以一次性完成所有这些操作。我尝试使用git reset --hard HEAD,然后git pull给了我:

# Your branch and 'origin/master' have diverged,
# and have 1 and 9 different commits each, respectively.
Run Code Online (Sandbox Code Playgroud)

也在看这个问题,但是没有帮助。

git version-control

3
推荐指数
1
解决办法
6599
查看次数