我试图制作一个小工具(可能已经存在)来帮助处理来自终端的存储库和分支机构。
基本上,我们的想法是在提示符中包含分支的名称(类似于虚拟环境,它也会在提示符中显示当前环境)。
以下命令只提取当前所在分支的名称。
git branch | grep "*" | cut -c3-
将此包含在我的.bashrc文件中以修改PS1
有效,但只会在控制台打开时更改提示。
我想每次更改文件夹cd my_folder
,cd ..
时都更新提示,所以如果我转到另一个存储库,它会更新分支。
所以我为cd
创建了一个别名,现在在执行cd
后会附加这个小脚本。
但是,如果我使用git
来更改分支,因为我没有更改文件夹,则提示不会立即更新。
我也可以为git创建一个别名,但我的印象是我改变了很多东西,也许这已经存在了。
为了避免重新发明轮子,这是否已经存在?使用它是个好主意吗?
由于
答案 0 :(得分:0)
在〜/ .bashrc中添加此代码。添加之后不要忘记使用source命令。
function multi_array_search ($array, $search) {
$result = [];
foreach ($array as $key => $value) { //iterate over each array element
foreach ($search as $k => $v) { //iterate over each search condition
$operator = $v[0];
$searchField = $v[1];
$searchVal = $v[2];
switch ($operator) {
case '=':
$cond = ($value[$searchField] != $searchVal);
break;
case '!=':
$cond = ($value[$searchField] == $searchVal);
break;
case '>':
$cond = ($value[$searchField] <= $searchVal);
break;
case '<':
$cond = ($value[$searchField] >= $searchVal);
break;
case '>=':
$cond = ($value[$searchField] < $searchVal);
break;
case '<=':
$cond = ($value[$searchField] > $searchVal);
break;
}
//if the array element does not meet the search condition then continue to the next element
if ((!isset($value[$searchField]) && $value[$searchField] !== null) || $cond) {
continue 2;
}
}
$result[] = $key; //add the array element's key to the result array
}
return $result;
}
//incoming data:
$phonesList = [
0 => [
'Manufacturer' => 'Apple',
'Model' => 'iPhone 3G 8GB',
'Carrier' => 'AT&T',
'Cost' => 100000
],
1 => [
'Manufacturer' => 'Motorola',
'Model' => 'Droid X2',
'Carrier' => 'Verizon',
'Cost' => 120000
],
2 => [
'Manufacturer' => 'Motorola',
'Model' => 'Droid X2',
'Carrier' => 'Verizon',
'Cost' => 150000
]
];
var_dump(multi_array_search($phonesList,
[ ['=', 'Manufacturer', 'Motorola'],
['>', 'Cost', '130000'] ]
));
//output:
array(1) { [0]=> int(2) }
希望这可能会有所帮助。
答案 1 :(得分:0)
首先检查您是否在Git存储库中,然后使用symbolic-ref命令进行提取:
function gitbranch
{
if git rev-parse --git-dir &>/dev/null; then
printf "%s" "[$( git symbolic-ref HEAD --short )]"
fi
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(gitbranch)\[\033[00m\] $ "
将其添加到.bashrc文件中。
答案 2 :(得分:0)
尝试一下
=>克隆存储库,如下所示:
while (driver.FindElements(By.ClassName("more")).Count > 0)
{
driver.FindElement(By.ClassName("more")).Click();
//Some delay to wait lazyload to complete
}
=>安装
git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it
=>重新打开终端