我刚添加remote A了我的另外repo B,然后运行git fetch A
如何撤消提取?如果我只是删除remote A:git remote remove A1它会撤消提取吗?
更新:
repo B
repo A
以上是我运行的命令,结果我将所有分支都提取到了我repo B但是我只需要一个特定的分支remote A,我需要它进入特定文件夹repo B但是这是另一个故事两个不同的git存储库之间的合并代码
我有一个带有一些子模块的项目.其中许多是从GitHub fork中克隆到的,我为自定义mod添加了一个分支.典型的设置如下:
在本地文件夹中:MyProject1/Frameworks/SomeAmazingRepo /
$ git branch -vva
*my-fork 123456 [my-fork/my-fork] Latest commit msg from fork
master abcdef [origin/master] Latest commit msg from original repo
remotes/my-fork/my-fork 123456 [my-fork/my-fork] Latest commit msg from fork
remotes/my-fork/master abcdef [origin/master] Latest commit msg from original repo
remotes/origin/HEAD -> origin/master
remotes/origin/master abcdef [origin/master] Latest commit msg from original repo
$ git remote -v
my-fork git@github.com:MyUser/SomeAmazingRepo.git (fetch)
my-fork git@github.com:MyUser/SomeAmazingRepo.git (push)
origin git://github.com/OriginalOwner/SomeAmazingRepo.git (fetch)
origin git://github.com/OriginalOwner/SomeAmazingRepo.git (push)
Run Code Online (Sandbox Code Playgroud)
我git clone --recursive我的项目开始一个新的分拆计划,当它开始递归,它吐出了一个错误,声称它找不到这些回购存储的提交.检查后,似乎没有添加遥控器,并且分支机构在主机中留下(空)...
在本地文件夹中:MyProject2/Frameworks/SomeAmazingRepo /
$ git branch …Run Code Online (Sandbox Code Playgroud) 我需要将干净的无版本代码与现有的git远程存储库相关联.
我更好地解释了我的情况.我的项目从svn转移到git.我有一个svn本地工作副本,旧代码(没有新的提交)必须与新的git存储库同步.我可以克隆回购,但我应该手动恢复许多被忽略的配置文件,我会避免它.
所以我删除了所有.svn目录,我将使用git远程存储库跟踪我的代码.
有办法吗?
我正在尝试使用git子模块将10多个存储库聚合到一个结构中以便于开发.
它应该克隆模块并签出分支.而是以分离头模式检出模块.
git clone git@github.com:org/global-repository.git
git submodule update —init
cd config-framework
git status
$git status
#HEAD detached at b932ab5
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)
gitmodules文件似乎没问题
$cat .gitmodules
[submodule "config-framework"]
path = config-framework
url = git@github.com:org/config-framework.git
branch = MY_BRANCH
Run Code Online (Sandbox Code Playgroud)
我们希望默认情况下检出MY_BRANCH分支,而不是分离头.我们如何实现这一目标?
有没有办法检查遥控器中是否存在指定的相对路径下的文件?如果它是唯一的选择,我可以先获取信息.换句话说,我正在寻找带有指定远程和分支选项的git-ls文件.我只对文件存在感兴趣(分支上的文件列表也会这样做),我不关心哈希,差异等.
我可以使用gitg进行推送并将我的代码推送到远程主分支但是我看不到任何选项来执行git pull.
我在Ubuntu 10和11上
我想将我的远程git存储库及其所有分支移动到新的远程存储库.
老遥远= git@github.com:thunderrabbit/thunderrabbit.github.com.git
新遥控= git@newhub.example.net:tr/tr.newrepo.git
我有一个git repo,它是另一个repo的分支.作为一项规则,我通常会添加一个名为upstream的远程,这是我分叉的原始回购.
$ git remote -v
origin git@github.com:skela/awesomeproject.git (fetch)
origin git@github.com:skela/awesomeproject.git (push)
upstream git://github.com/bob/awesomeproject.git (fetch)
upstream git://github.com/bob/awesomeproject.git (push)
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个额外的远程持久化克隆?假设我删除了本地存储库并执行以下操作:
git clone git@github.com:skela/awesomeproject.git
Run Code Online (Sandbox Code Playgroud)
现在我重新检查我的遥控器:
$ git remote -v
origin git@github.com:skela/awesomeproject.git (fetch)
origin git@github.com:skela/awesomeproject.git (push)
Run Code Online (Sandbox Code Playgroud)
我的上游遥控器消失了!
如何确保我的git repo始终保留这两个远程别名?
编辑:只是添加我想要这样做的主要原因,以便在可接受的路径上塑造一些答案;)
目标是在我的仓库中设立一个跟踪上游主人的分支.
[remote "upstream"]
url = git://github.com/bob/awesomeproject.git
fetch = +refs/heads/*:refs/remotes/upstream/*
[branch "father"]
remote = upstream
merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)
换句话说,在我的仓库中的分支"父亲"跟踪称为上游主分支的远程.
一旦我设置它,它一切都很好,但是一旦我再次克隆了回购,"父"分支指向原点而不是上游.
使用git fetch --prune删除远程计算机上的分支时删除本地远程跟踪分支.使用以下命令将remote.origin.prune设置为true ...
git config --global fetch.prune true
Run Code Online (Sandbox Code Playgroud)
...使用fetch命令总是隐式使用--prune选项.
我正在为我的小组中不熟悉它的一些开发人员整理git的最佳实践/介绍.在建议他们这样做之前,我想确定我知道这不是一种危险的行为.如果发生一些无关紧要的事故,我至少会让他们了解需要注意的事项.
它似乎不是一个破坏性操作,因为它不会删除任何本地(非远程)分支.如果没有定期指定git fetch --prune或git remote prune,这似乎是一种不构建不再使用的遥控器的好方法.
如果这都是真的,为什么这不是git的默认行为?
这是一个常见的用例,我克隆一个存储库,签出一个分支,做一些代码更改,进行多次提交,然后当它稳定时,我做一个推送到远程,最终分支被合并和删除.我离开了一个上游的当地分支机构.
我一直在寻找一种删除所有这些分支的安全方法.从描述来看,似乎git remote prune起源正是这样做的.但它似乎并不适合我.
看到以下行为,分支encrdb_init已被删除remote但git remote prune origin命令似乎没有修剪它.我不知道为什么.
$ git branch
bugfix/encrdb_init
* master
$
$ git remote prune origin
$
$ git checkout bugfix/encrdb_init
Switched to branch 'bugfix/encrdb_init'
Your branch is based on 'origin/bugfix/encrdb_init', but the upstream
is gone.
(use "git branch --unset-upstream" to fixup)
$
$ git branch
bugfix/encrdb_init <<< shouldn't this have been pruned?
* master
Run Code Online (Sandbox Code Playgroud)
供参考添加输出 git remote show origin
$ git remote show origin
* remote origin
Fetch URL: …Run Code Online (Sandbox Code Playgroud) git ×10
git-remote ×10
git-branch ×2
git-clone ×2
git-fetch ×2
cloning ×1
gitg ×1
github ×1
gitx ×1
repository ×1