我想删除本地和我在GitHub上的远程项目分支上的分支.
$ git branch -d remotes/origin/bugfix
error: branch 'remotes/origin/bugfix' not found.
$ git branch -d origin/bugfix
error: branch 'origin/bugfix' not found.
$ git branch -rd origin/bugfix
Deleted remote branch origin/bugfix (was 2a14ef7).
$ git push
Everything up-to-date
$ git pull
From github.com:gituser/gitproject
* [new branch] bugfix -> origin/bugfix
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
remotes/origin/bugfix
在本地和GitHub上成功删除分支我需要做些什么
?
我们的Git存储库最初是作为单个怪物SVN存储库的一部分开始的,其中每个项目都有自己的树,如下所示:
project1/branches
/tags
/trunk
project2/branches
/tags
/trunk
Run Code Online (Sandbox Code Playgroud)
显然,将文件从一个文件移动到另一个文件非常容易svn mv
.但在Git中,每个项目都在自己的存储库中,今天我被要求将子目录从中移动project2
到project1
.我做了这样的事情:
$ git clone project2
$ cd project2
$ git filter-branch --subdirectory-filter deeply/buried/java/source/directory/A -- --all
$ git remote rm origin # so I don't accidentally the repo ;-)
$ mkdir -p deeply/buried/different/java/source/directory/B
$ for f in *.java; do
> git mv $f deeply/buried/different/java/source/directory/B
> done
$ git commit -m "moved files to new subdirectory"
$ cd ..
$
$ git clone project1
$ cd project1
$ …
Run Code Online (Sandbox Code Playgroud) 我试图寻找一个关于减少回购规模的好教程,但没有找到.我如何减少我的repo大小...它大约10 MB,但事情是Heroku只允许50 MB,我不在附近完成开发我的应用程序.
我已经将通常的嫌疑人(日志,供应商,文档等)添加到.gitignore.虽然我最近只添加了.gitignore.
有什么建议?
这个问题基于Detach子目录到单独的Git存储库中
我想分离一对,而不是分离一个子目录.例如,我当前的目录树如下所示:
/apps
/AAA
/BBB
/CCC
/libs
/XXX
/YYY
/ZZZ
Run Code Online (Sandbox Code Playgroud)
而我想这样做:
/apps
/AAA
/libs
/XXX
Run Code Online (Sandbox Code Playgroud)
该--subdirectory-filter
参数git filter-branch
将无法工作,因为它在第一次运行时除去了给定目录之外的所有内容.我认为使用--index-filter
所有不需要的文件的参数会起作用(尽管很乏味),但如果我尝试不止一次运行它,我会得到以下消息:
Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?TIA
几个月前我开始了一个项目,并将所有内容存储在主目录中.在我的主目录"Project"中有几个包含不同内容的子目录:Project/paper包含用LaTeX Project/sourcecode/RailsApp编写的文档包含我的rails应用程序.
"Project"是GITified,"paper"和"RailsApp"目录中都有很多提交.现在,因为我想使用cruisecontrol.rb作为我的"RailsApp",我想知道是否有办法在不丢失历史的情况下从"RailsApp"中创建一个子模块.
我有一个GitHub仓库,有两个分支 - 主和发布.
发布分支包含二进制分发文件,这些文件导致了非常大的repo大小(> 250MB),所以我决定清理一下.
首先,我删除了远程发布分支 git push origin :release
然后我删除了本地发布分支.首先我试过git branch -d release
,但是git说"错误:分支'释放'不是你当前HEAD的祖先." 这是真的,所以我git branch -D release
强迫它被删除.
但是我在本地和GitHub上的存储库大小仍然很大.所以然后我浏览了通常的git命令列表,比如git gc --prune=today --aggressive
没有运气.
按照Charles Bailey在SO 1029969的指示,我得到了最大blob的SHA1列表.然后我使用来自SO 460331的脚本 来找到blob ......并且五个最大的不存在,虽然找到了较小的blob,所以我知道脚本正在工作.
我认为这些博客是发布分支中的二进制文件,它们在删除该分支后不知何故.什么是摆脱它们的正确方法?
我继承了一个包含多个项目的git存储库.我想将存储库拆分为新的单个存储库,每个项目一个,然后让主存储库将项目作为子模块包含在内.如果可能的话,我想在保持各个项目的修订历史的同时完成所有这些工作.
我可以为每个项目克隆存储库并每次删除所有其他项目,但是有更好的方法可以避免在每个新项目存储库中都有克隆历史记录吗?
一个SVN仓库成功转换到Git的,我现在有一个我想分解成多个更小的存储库,并保持历史上的一个非常大的Git仓库.
那么,有人可以帮助拆分可能看起来像这样的回购:
MyHugeRepo/
.git/
DIR_A/
DIR_B/
DIR_1/
DIR_2/
Run Code Online (Sandbox Code Playgroud)
进入两个看起来像这样的存储库:
MyABRepo/
.git
DIR_A/
DIR_B/
My12Repo/
.git
DIR_1/
DIR_2/
Run Code Online (Sandbox Code Playgroud)
我试过以下几个方向在此之前的问题,但它试图把多个目录到一个单独的回购协议(时并不真正适合拆离(移动)子目录成独立的Git仓库).
我不小心添加,提交并推送了一个巨大的二进制文件,我最近提交了一个Git存储库.
如何让Git删除为该提交创建的对象,以便我的.git
目录再次缩小到合理的大小?
编辑:谢谢你的回答; 我试过几个解决方案.没有用.例如,GitHub中的文件从历史记录中删除了文件,但.git
目录大小没有减少:
$ BADFILES=$(find test_data -type f -exec echo -n "'{}' " \;)
$ git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch $BADFILES" HEAD
Rewrite 14ed3f41474f0a2f624a440e5a106c2768edb67b (66/66)
rm 'test_data/images/001.jpg'
[...snip...]
rm 'test_data/images/281.jpg'
Ref 'refs/heads/master' was rewritten
$ git log -p # looks nice
$ rm -rf .git/refs/original/
$ git reflog expire --all
$ git gc --aggressive --prune
Counting objects: 625, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (598/598), done. …
Run Code Online (Sandbox Code Playgroud) 使用Git 1.7.0中新的稀疏结账功能,是否可以像在SVN中一样获取子目录的内容?我找到了这个例子,但它保留了完整的目录结构.想象一下,我只想要'perl'目录的内容,而没有名为'perl'的实际目录.
- 编辑 -
例:
我的git存储库包含以下路径
repo/.git/
repo/perl/
repo/perl/script1.pl
repo/perl/script2.pl
repo/images/
repo/images/image1.jpg
repo/images/image2.jpg
repo/doc/
repo/doc/readme.txt
repo/doc/help.txt
Run Code Online (Sandbox Code Playgroud)
我想要的是能够从上面的存储库中生成这种布局:
repo/.git/
repo/script1.pl
repo/script2.pl
Run Code Online (Sandbox Code Playgroud)
然而,使用当前的稀疏结账功能,似乎只能获得
repo/.git/
repo/perl/script1.pl
repo/perl/script2.pl
Run Code Online (Sandbox Code Playgroud)
这不是我想要的.
git ×10
repository ×2
binary ×1
file ×1
git-branch ×1
git-clean ×1
git-push ×1
git-remote ×1
object ×1
split ×1