我有一个远程裸存储库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) 问题:我想要一种删除没有遥控器的所有本地分支的方法.很容易将分支的名称输入到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) 我注意到TortoiseGit似乎包含我创建的每个功能分支,包括本地分支和远程的下拉菜单,即使许多远程分支在合并到master之后被删除了.
TortoiseGit中是否有一种方法可以同步哪些分支列入实际存在的分支?
并且略微切线......就Git本身而言,是一个被认为与遥控器完全分离的分支的本地版本?即没有理由删除远程版本应该自动意味着删除本地版本?
在使用--track(或保留默认值,或--notrack)创建分支后,您希望提醒您分支正在跟踪的内容.除了搜索.git/config文件之外,还有一种方法可以显示分支正在跟踪的内容吗?
我正在使用git for-each-ref
git别名来显示分支名称和该分支上最后一次提交的主题.也就是说,很难分辨出分支名称的结束位置以及提交消息主题的开始,所以我试图将分支名称着色,以便更容易地分辨出两者之间的区别.以下是没有颜色的工作别名:
[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配置错误.我也尝试用双引号替换单引号,并转出方括号,但没有骰子.
想法?
我有一个本地分支"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 branch -a -???
master <-> origin/master
new_menu <-> origin/feature1
remotes/origin/master
remotes/origin/feature1
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?
我在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存储库的只读副本,而不会让他们认为我需要推送提交?
或者,我是以愚蠢的方式做到这一点,是否有更好的方法来实现我的目标?
这对我来说似乎很奇怪,而且显然我缺少了一些东西.这是如何重现问题:
git clone git@github.com:jhsrennie/Test.git Test-rw
git clone git://github.com/jhsrennie/Test.git Test-ro
Test-rw
,然后git add
和git 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) 我不知道这是怎么发生的,但是在 SourceTree 中,当我从远程(源)SourceTree 拉取我的开发分支时,似乎再也不会知道“要拉的远程分支”是什么了。相反,每次我必须手动选择开发。
有没有一种方法可以将我的本地开发分支重新分配回我在 Git 中或通过 SourceTree 开发的源,这样我就不必继续从下拉列表中选择开发分支?
我正在使用 SourceTree 1.9.6.2。
git ×10
git-branch ×2
git-remote ×2
branch ×1
git-push ×1
github ×1
push ×1
sourcetree ×1
tortoisegit ×1
tracking ×1