我在一个非常大的项目中与一个团队合作,我们使用git和bitbucket进行版本控制。因为在我们的git仓库中有很多旧的分支,我们的项目负责人要求我们删除所有我们不再使用的旧分支。我如何只看到我在Web UI中创建的分支?这样我就可以轻松删除它们。
xdyibdwo1#
是的,可以知道谁在Bitbucket服务器中创建或删除了一个分支,但你需要访问数据库。每当删除一个分支时,哈希值从一个版本号移动到000000000系列,反之亦然。你可以在连接到数据库后使用以下命令进行检查:A)select * from sta_repo_push_ref | grep <branch_name>;然后寻找类似下面的内容,其中第一列是活动ID,第三列的值是'1',这意味着分支创建:
select * from sta_repo_push_ref | grep <branch_name>;
20034 | refs/heads/feature_<branch_name> | 1 | 0000000000000000000000000000000000000000 | 1e624235uhjdhhghlb6200cdbc86a4458fc1dfbf5
B)select * from sta_activity where id = 20034;,它将在最后一列中给予user_id:
select * from sta_activity where id = 20034;
20034| 6 | 2019-09-09 18:24:24.864 | 34
C)最后是select * from sta_normal_user where user_id = 34;,这里是创建分支的名称。
select * from sta_normal_user where user_id = 34;
user_id | name | slug | locale | deleted_timestamp | time_zone ---------+----------------+----------------+--------+-------------------+----------- 34| <Culprit_Name> | <Culprit_Name>| | |
sq1bmfud2#
我觉得建议你从命令行的一些步骤。我认为你可以开始列出你创建的所有分支:git for-each-ref --format=' %(authorname) %09 %(refname)' --sort=authorname | grep 'youauthorname'之后,您可以使用以下命令轻松删除这些分支:git push -u --delete branch1 branch2 ...告诉我
git for-each-ref --format=' %(authorname) %09 %(refname)' --sort=authorname | grep 'youauthorname'
git push -u --delete branch1 branch2 ...
lo8azlld3#
在客户端可能更容易做到这一点。在终端中,您应该能够用途:git log --author=<your email> --format=%H %D这将列出你创建的所有提交的短哈希值,然后是指向这些提交的任何分支。除非其他人提交到你的分支,否则这应该包括你的所有分支。请记住,这将包括本地分支以及服务器上的分支。Bitbucket服务器上的分支将以<remote name>/开始。除非您为远程指定了另一个名称,否则通常会是origin。在开始之前,请确保git fetch。作为一个旁注,如果你想在将来避免这种情况,我建议把你的名字或首字母放在分支名称中。例如,xyz/myBranch。这将使你在将来更容易找到你创建的分支。
git log --author=<your email> --format=%H %D
<remote name>/
origin
git fetch
xyz/myBranch
mctunoxg4#
在我的~/.gitconfig中有这个
[alias] # branch owners(last commit) on remote bown = for-each-ref --sort=committerdate refs/remotes/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(authorname) (%(color:green)%(committerdate:short)%
然后我就像这样git bown | grep my-name注意:这只依赖于最后提交的所有者
git bown | grep my-name
4条答案
按热度按时间xdyibdwo1#
是的,可以知道谁在Bitbucket服务器中创建或删除了一个分支,但你需要访问数据库。每当删除一个分支时,哈希值从一个版本号移动到000000000系列,反之亦然。你可以在连接到数据库后使用以下命令进行检查:
A)
select * from sta_repo_push_ref | grep <branch_name>;
然后寻找类似下面的内容,其中第一列是活动ID,第三列的值是'1',这意味着分支创建:
B)
select * from sta_activity where id = 20034;
,它将在最后一列中给予user_id:C)最后是
select * from sta_normal_user where user_id = 34;
,这里是创建分支的名称。sq1bmfud2#
我觉得建议你从命令行的一些步骤。
我认为你可以开始列出你创建的所有分支:
git for-each-ref --format=' %(authorname) %09 %(refname)' --sort=authorname | grep 'youauthorname'
之后,您可以使用以下命令轻松删除这些分支:
git push -u --delete branch1 branch2 ...
告诉我
lo8azlld3#
在客户端可能更容易做到这一点。
在终端中,您应该能够用途:
git log --author=<your email> --format=%H %D
这将列出你创建的所有提交的短哈希值,然后是指向这些提交的任何分支。除非其他人提交到你的分支,否则这应该包括你的所有分支。
请记住,这将包括本地分支以及服务器上的分支。Bitbucket服务器上的分支将以
<remote name>/
开始。除非您为远程指定了另一个名称,否则通常会是origin
。在开始之前,请确保
git fetch
。作为一个旁注,如果你想在将来避免这种情况,我建议把你的名字或首字母放在分支名称中。例如,
xyz/myBranch
。这将使你在将来更容易找到你创建的分支。mctunoxg4#
在我的~/.gitconfig中有这个
然后我就像这样
git bown | grep my-name
注意:这只依赖于最后提交的所有者