相关疑难解决方法(0)

找出本地分支正在跟踪的远程分支

另请参阅:
如何查看哪些git分支正在跟踪哪个远程/上游分支?

如何找出本地分支正在跟踪的远程分支?

我需要解析git配置输出,还是有一个命令会为我做这个?

git

775
推荐指数
19
解决办法
46万
查看次数

Git:这是分支的默认配置远程?

我有一个远程裸存储库hub.我只在master分公司工作.下面这条错误消息的最后一句让我想知道:我如何找出哪个是"当前分支的默认配置遥控器"?我该怎么设置它?

[myserver]~/progs $ git remote -v
hub     ~/sitehub/progs.git/ (fetch)
hub     ~/sitehub/progs.git/ (push)

[myserver]~/progs $ git branch -r
  hub/master

[myserver]~/progs $ cat .git/HEAD
ref: refs/heads/master

[myserver]~/progs $ git pull hub
You asked to pull from the remote 'hub', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.
Run Code Online (Sandbox Code Playgroud)

git git-push remote-branch

190
推荐指数
3
解决办法
11万
查看次数

列出没有遥控器的所有本地分支

问题:我想要一种删除没有遥控器的所有本地分支的方法.很容易将分支的名称输入到a中git branch -D {branch_name},但我如何首先获得该列表?

例如:

我创建了一个没有远程的新分支:

$ git co -b no_upstream
Run Code Online (Sandbox Code Playgroud)

我列出了所有的分支,只有一个有远程

$ git branch -a
master
* no_upstream
remotes/origin/HEAD -> origin/master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

我可以运行什么命令来获得no_upstream答案?

我可以跑git rev-parse --abbrev-ref --symbolic-full-name @{u},这将表明它没有遥控器:

$ git rev-parse --abbrev-ref --symbolic-full-name @{u}
error: No upstream configured for branch 'no_upstream'
error: No upstream configured for branch 'no_upstream'
fatal: ambiguous argument '@{u}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] …
Run Code Online (Sandbox Code Playgroud)

git git-remote

72
推荐指数
7
解决办法
3万
查看次数

删除了仍在TortoiseGit中列出的远程分支

我注意到TortoiseGit似乎包含我创建的每个功能分支,包括本地分支和远程的下拉菜单,即使许多远程分支在合并到master之后被删除了.

TortoiseGit中是否有一种方法可以同步哪些分支列入实际存在的分支?

并且略微切线......就Git本身而言,是一个被认为与遥控器完全分离的分支的本地版本?即没有理由删除远程版本应该自动意味着删除本地版本?

git tortoisegit

26
推荐指数
2
解决办法
9068
查看次数

git中的这个分支跟踪(如果有的话)是什么?

在使用--track(或保留默认值,或--notrack)创建分支后,您希望提醒您分支正在跟踪的内容.除了搜索.git/config文件之外,还有一种方法可以显示分支正在跟踪的内容吗?

git branch git-branch

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

使用彩色格式字符串git for-each-ref

我正在使用git for-each-refgit别名来显示分支名称和该分支上最后一次提交的主题.也就是说,很难分辨出分支名称的结束位置以及提交消息主题的开始,所以我试图将分支名称着色,以便更容易地分辨出两者之间的区别.以下是没有颜色的工作别名:

[alias]
  logbranch = for-each-ref --sort=-committerdate refs/heads/ --format='%(refname:short) %(subject)'
Run Code Online (Sandbox Code Playgroud)

为了添加颜色,我尝试使用shell颜色转义(我正在使用bash),如下所示:

[alias]
  logbranch = for-each-ref --sort=-committerdate refs/heads/ --format='[\033[0;31m]%(refname:short)[\e[m]   %(subject)'
Run Code Online (Sandbox Code Playgroud)

这给了我一个git配置错误.我也尝试用双引号替换单引号,并转出方括号,但没有骰子.

想法?

git

11
推荐指数
2
解决办法
2780
查看次数

防止git推到错误的遥控器

我有一个本地分支"gh",我总是希望在github上推送到我的帐户; 我还有另一个本地分支"实验室",我总是希望在github上推送到我的组织的帐户.
我为此设置了两个遥控器(gh和lab).

$ git remote -v
gh  git@Ninguem.github.com:Ninguem/prj.git (fetch)
gh  git@Ninguem.github.com:Ninguem/prj.git (push)
lab git@Ninguem.github.com:lab-rasparta-org/prj.git (fetch)
lab git@Ninguem.github.com:lab-rasparta-org/prj.git (push)
Run Code Online (Sandbox Code Playgroud)

我不敢在推动时无意间弄乱这两个人.有办法防止这种情况吗?
注意:
我已经成功地获取了这两个,所以我认为它们在某种程度上"正确地"链接在一起......我如何管理哪些分支"链接"到哪些远程分支并且是否有安全机制?

git push github git-remote

9
推荐指数
1
解决办法
665
查看次数

Git:如何列出包含跟踪遥控器信息的分支?

我想列出所有分支机构的列表,其中包含有关它们跟踪内容的信息.即:

$ git branch -a -???
master  <-> origin/master
new_menu  <-> origin/feature1
remotes/origin/master
remotes/origin/feature1
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?

git tracking git-branch

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

保留git存储库的多个只读副本

我在github.com上有一个存储库,我git下载到我的工作站,编辑,提交然后git将更改推回到github.一切正常.

但我经常使用例如克隆来自github.com的只读副本:

git clone git://github.com/jhsrennie/Test.git Test-ro
Run Code Online (Sandbox Code Playgroud)

通常这是因为我有临时测试安装,我不会开发,但我需要检查代码构建和运行.我的github存储库的副本可以是只读的,因为没有任何更改需要推回到github.麻烦的是,当我使用以下命令从github下载更改到我的只读副本时:

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

我现在发现git status显示如下:

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
Run Code Online (Sandbox Code Playgroud)

我无法推动更改,我不想反正,但是未完成的提交会导致我出现问题,例如我无法查看新的远程分支.我最终不得不删除我的只读存储库,并在每次需要更新它时重新克隆它.

如何从github.com更新我的github存储库的只读副本,而不会让他们认为我需要推送提交?

或者,我是以愚蠢的方式做到这一点,是否有更好的方法来实现我的目标?

回应Cupcake的回答

这对我来说似乎很奇怪,而且显然我缺少了一些东西.这是如何重现问题:

  • 使用以下命令克隆存储库: git clone git@github.com:jhsrennie/Test.git Test-rw
  • 克隆只读副本: git clone git://github.com/jhsrennie/Test.git Test-ro
  • 进行更改Test-rw,然后git addgit commit

git status 现在显示(正如您所期望的):

renniej@RATHAUS /d/Dev/GIT/Test-rw (master)
$ git status
# On branch master
# Your branch is ahead …
Run Code Online (Sandbox Code Playgroud)

git

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

Git SourceTree在拉本地分支时“忘记”了要拉的远程分支

我不知道这是怎么发生的,但是在 SourceTree 中,当我从远程(源)SourceTree 拉取我的开发分支时,似乎再也不会知道“要拉的远程分支”是什么了。相反,每次我必须手动选择开发。

在此处输入图片说明

有没有一种方法可以将我的本地开发分支重新分配回我在 Git 中或通过 SourceTree 开发的源,这样我就不必继续从下拉列表中选择开发分支?

我正在使用 SourceTree 1.9.6.2。

git sourcetree

2
推荐指数
1
解决办法
313
查看次数