隐藏但仍使用GIT保存分支?
我有大量的分支,这些分支的工作有点混乱。有时我不想完全删除分支,但我暂时不会处理它。在这种情况下,我采用了在分支前加u的惯例 因此,如果我从以下几点开始:隐藏但仍使用GIT保存分支?,git,Git,我有大量的分支,这些分支的工作有点混乱。有时我不想完全删除分支,但我暂时不会处理它。在这种情况下,我采用了在分支前加u的惯例 因此,如果我从以下几点开始: branch1 branch2 branch3 当我处理完branch1但想保存备份以备不时之需时,我将重命名为: _branch1 branch2 branch3 这在一段时间内运行良好,但我的工作区现在变得有点混乱。是否有办法将分支保存在某个位置以便恢复,但不在正常的工作区中(好像它已被删除) 您可以将标记用于许多与分支相同的事情:
branch1
branch2
branch3
当我处理完branch1但想保存备份以备不时之需时,我将重命名为:
_branch1
branch2
branch3
这在一段时间内运行良好,但我的工作区现在变得有点混乱。是否有办法将分支保存在某个位置以便恢复,但不在正常的工作区中(好像它已被删除) 您可以将标记用于许多与分支相同的事情:
git tag saved_branch1 branch1
git branch -D branch1
git branch -m branch2 _branch2
git push _branch2 archive
git branch -D branch2
要恢复分支机构,请执行以下操作:
git branch branch1 saved_branch1
git checkout branch1
问题是标签可能会意外地被推到上游,因此您必须小心避免:
git push --tags ;# Don't do this!
git push --follow-tags ;# This will only push annotated tags on some commits
由于上面显示的tag命令不创建带注释的标记(它创建轻量级标记),因此这些标记将不会被推送。将旧分支保存在单独的存储库中 也就是说,如果您在
$HOME/myproject
中工作,请克隆您的存储库:
cd $HOME
git clone myproject myproject_archive
cd myproject
git remote add archive ../myproject_archive
现在,将\u存档
存储库设置为主服务器上的远程存储库
存储库:
cd $HOME
git clone myproject myproject_archive
cd myproject
git remote add archive ../myproject_archive
现在删除myproject
中的所有“旧”分支:
git branch -D _branch1
etc...
你们都准备好了!您的分支继续存在于
myproject\u归档
repository,您现在可以轻松地归档新项目
分支机构:
git tag saved_branch1 branch1
git branch -D branch1
git branch -m branch2 _branch2
git push _branch2 archive
git branch -D branch2
您的姓名是:
确保您已推送所有分支,然后再次克隆您的回购,但这次
然后添加要处理的几个分支:
git config --add remote.origin.fetch refs/heads/my_name/branch1:refs/remotes/origin/branch1
git config --add remote.origin.fetch refs/heads/my_name/branch2:refs/remotes/origin/branch2
git fetch
然后开始处理已获取的几个分支之一:
git checkout -b branch1 origin/branch1
引述问题(加上重点):
这在一段时间内效果很好,但我的工作区现在变得有点混乱。是否有办法将分支保存在某个地方以便恢复,但不在正常工作区中(好像它已被删除)
你说“我的工作区现在变得乱七八糟”是什么意思?你的意思是说,git分支
显示了太多你不想一直看到的东西,比如你的备份分支,它们以开头
如果是这样的话,我不喜欢其他的解决方案。到目前为止,我认为最干净、最简单、存储密集度最低的解决方案是只编写自己版本的git分支
,称为git分支
,它围绕常规的git分支
,但不显示以开头的备份分支
以下是如何做到这一点:
在~/bin
中创建git-branch\
:
mkdir-p~/bin
gedit~/bin/git分支_
现在把这个放进去
#/bin/bash
#忽略以开头的分支名称(不要使用“git branch”打印)
#这些前缀字符串
前缀x1=“z-”
前缀x2=“389;”
git分支--颜色=始终为“$@”\
|grep--color=never-v“^$PREFIX1”\
|grep--color=never-v“^$PREFIX2”
现在关闭并重新打开您的终端,和/或注销并重新登录,如果这是第一次创建并使用~/bin
目录(这样Ubuntu可以通过~/.profile
文件自动将~/bin
目录添加到您的路径中)。然后运行以下命令:
#1。显示所有分支
吉特分行
# 2. 显示所有分支,但名称以“z-”或“U”开头的分支除外。
吉特分行_
就这样!请注意,我喜欢在备份分支名称前面加上z-bak/some_name
,因此我也排除了以z-
开头的分支名称
由于git branch
是围绕git branch
的包装器,并使用“$@”
将所有参数传递给它,因此您可以像使用常规git branch
一样,使用git branch
的任何和所有参数/选项
示例:这些命令相同:
git分支-h
吉特分行
在我的回购中获取此git分支\
脚本:。也可以查看其中的评论。相关:你说“我的工作区现在变得一团糟”是什么意思?你的意思是说,git branch
显示了太多你不想一直看到的东西,比如你的备份分支,它们以开头吗?如果这是你的意思,我的答案是:。