我来自Subversion背景,当我有一个分支时,我知道我正在处理的是"这些工作文件指向这个分支".
但是对于Git,我不确定我何时在NetBeans或Notepad ++中编辑文件,无论它是与主服务器还是其他分支相关联.
git在bash中没有问题,它告诉我我在做什么.
我有一台服务器,我正在取消.我唯一要迁移的是我的存储库.此服务器被列为我的一个项目的源(主).移动存储库以保留历史记录的正确方法是什么.
是否可以git grep在Git控件源项目的所有分支内运行?还是有另一个命令要运行?
在先前的问题中,有人为查找包含EXACT提交的分支提供了答案:
接受的答案强调,这仅适用于EXACT提交ID,而不适用于相同的提交.有人进一步指出,Git Cherry可以用来解决这个问题.
Git樱桃SEEMS适合反向; 发现提交没有推到上游.如果我不知道哪个分支创建它以及什么是上游,那么这是无用的.所以我不知道它将如何帮助解决这个问题.
有人可以解释/提供一个如何使用git cherry查找包含特定提交的"等效"的所有分支的示例吗?
我有一个状态的本地仓库禁止我提交,藏匿,结账到另一个分支,甚至放弃更改.所以我只是卡住了.
据我记忆,我会试着描述一下这些情况给我带来了什么.
请坐下
不久之前,在远处的另一台计算机......根据以下内容在项目中另一个开发标准化的crlf:https://help.github.com/articles/dealing-with-line-endings
在那一刻(你知道,光速......)我在本地做了一些改变,提交和拉动.
当我拉Git说:
error: Your local changes to the following files would be overwritten by merge:
wp-config.php
Run Code Online (Sandbox Code Playgroud)
wp-config.php之前已从索引中删除,git update-index --assume-unchanged wp-config.php因为它的模板配置文件适用于每个本地环境.
基础"模板"可以改变.没什么好惊讶的.这就是我的计划:
wp-config.phpstash 我自己的配置发生变化pull origin masterstash apply 我的配置回来了在第3步出现问题git pull origin master仍然是上面的错误,好像存储无效.
git status说wp-config.php没有进行改变的提交.在藏匿之后,这让我感到惊讶.
自从我把我的变化藏起来后,我跑了git checkout -- wp-config.php......但没有任何效果!文件仍未进行提交.
由于我变得疯了,我创建了一个新的分支my-config,添加并提交wp-config.php到它,然后切换回master,删除wp-config.php(使用git rm),并合并origin/master ...成功!
所以现在主人是最新的和干净的,我计划在没有Git帮助的情况下恢复我自己的配置(手动编辑文件).
因为我想知道发生了什么,我切换到my-config分支,并尝试了一个非常简单的操作:
git stash
git stash apply
Run Code Online (Sandbox Code Playgroud)
你猜怎么着?stash apply …
如果我跑步git branch,我会得到类似:
* master
dev
foo
Run Code Online (Sandbox Code Playgroud)
如果这样做git branch -r,它将显示遥控器上的所有分支,而没有星号(星号显示我当前已签出的分支)。
如何列出所有本地分支机构,而不会出现星号?我需要一个编程解决方案,以便可以逐行读取结果。
在aa存储库具有多个分支的情况下:如何简单地跨所有分支更新文件.
在这种情况下,它是一个类似bashrc的文件,它指定了一些环境变量.我过去更新了主分支版本,然后重新定位了每个分支.这有一个n + 1开销,我想避免.
我可以使用很好的列出包含特定提交的所有分支git branch --list --contains.但正如关于如何列出所有分支的相关问题中所解释的,这是一个不应该在脚本中使用的瓷器命令.
后一个问题建议使用管道命令git for-each-ref,但这不支持--contains.
列出包含特定提交的所有分支的正确管道接口是什么.
我正在寻找在PowerShell脚本中为每个Git远程分支执行功能的最佳方法。
我不知道获取Git远程分支列表的最佳方法。我可以成功列出所有远程分支,但是我总是在分支名称中使用讨厌的格式。
这是我尝试过的命令以及得到的结果数组。
$allBranches = git branch -r
$allBranches = @(' origin/branch1', ' origin/branch2', ' origin/branch3')
$allBranches = git for-each-ref --shell --format=%(refname) refs/remotes/origin
$allBranches = @(''origin/branch1'', ''origin/branch2'', ''origin/branch3'')
Run Code Online (Sandbox Code Playgroud)
我想要
$allBranches = @('origin/branch1', 'origin/branch2', 'origin/branch3'),所以我目前的方法是使用Trim()以下命令从奇怪的分支名称中手动删除格式:
foreach($branch in $allBranches) {
# Format $branch
# Do function
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法?
我有一个git存储库,其中包含许多格式为“ v1.2.3-rc-4”的标签,我想将其自动重命名为“ 1.2.3-rc4”。标记同时存在于本地和远程存储库中。
我要澄清的是,版本号中的数字部分应视为变量。以上值仅用于说明标签的格式。
有没有办法自动执行此更改?
我有以下git分支
foo
bar
foobar
feature/foo
feature/bar
feature/buzz
Run Code Online (Sandbox Code Playgroud)
你会如何对以'feature /'开头的所有分支进行for循环?
当我尝试以下内容时,奇怪地打印出的不仅仅是git分支.
for i in $(git branch --list "feature/*"); do echo $i; done;
stuff.txt
icon.jpg
morestuff.txt
Vagrantfile
feature/foo
feature/bar
feature/buzz
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个bash脚本,该脚本将在其他分支的当前分支之前打印提交。但是,当我git branch在子shell中执行命令时,不仅获得分支名称,还获得当前目录中的文件和文件夹列表。为什么呼叫的$(git branch)行为方式如此?
例如,通过给定一个 Git 远程跟踪分支的名称,upstream/develop如果有的话,如何找到哪个本地分支跟踪它?
如果可能,我正在寻找一种不依赖于 shell 脚本并且也适用于 Windows 的解决方案。
git ×13
git-branch ×4
bash ×2
branch ×1
foreach ×1
git-plumbing ×1
git-stash ×1
grep ×1
newline ×1
powershell ×1
shell ×1
unix ×1