我想以这样的方式检查分支,以便后续的git push
能够以相同的名称将其正确地推送到原点。
当远程分支已经存在时,这很容易
git checkout -b branch origin/branch
但是,即使origin/branch
还没有,我也愿意这样做。
答案 0 :(得分:8)
只需创建一个本地分支
git checkout -b branch
远程存储库对您的本地分支一无所知,因此您必须第一次“手动”推送它
git push origin branch
现在,如果您希望本地存储库让它使用远程存储库跟踪您的本地分支
git branch --set-upstream branch origin/branch
答案 1 :(得分:4)
没有简单的方法,AFAIK。
这是我目前正在努力争取的。这是一个bash函数,它设置一个新的本地分支,以便来自该分支的git push
推送到具有相同名称的新远程分支。
function featurebranch() {
if [ "$@" != "" ]; then
git branch "$@" origin/master
git checkout "$@"
git config branch."$@".remote origin
git config branch."$@".merge refs/heads/"$@"
git config branch."$@".rebase true
fi
}
必须使用git config
,因为使用git push -u
或git branch --track
或git branch --set-upstream-to
命令都涉及实际存在的远程分支。
如果任何git大师检查过它并指出任何问题,我会很感激。助教。 ; - )
答案 2 :(得分:0)
首先,创建一个本地分支:
git checkout -b new-branch
此时远程存储库不知道本地分支,因此我们需要推送它并设置跟踪参考。
git push -u origin new-branch
创建一个本地分支:
git checkout -b new-branch
版本1.7.0之前的Git需要三个命令来推送分支并设置跟踪参考。
git push origin new-branch
git config branch.new-branch.remote origin
git config branch.new-branch.merge refs/heads/new-branch
Bonus:创建一个本地分支,并使用此git别名在一个命令中推送跟踪的远程分支:
git config --global alias.cb $'!sh -c \'git checkout -b "$0" && git push -u origin "$0"\''
然后要创建一个新分支,您可以运行:
git cb new-branch
答案 3 :(得分:0)
试过并测试过。 git版本2.10.1(Apple Git-78)
id name actions
1 AAA view edit delete
2 BBB view edit delete
3 CCC view edit delete
4 DDD view edit delete
<div class="box">
<div class="box-content box-table">
<div ui-grid="gridUsers" ui-grid-pagination>
</div>
</div>
</div>
<style type="text/css">
a[disabled="disabled"] {
pointer-events: none;
}
span[disabled="disabled"] {
color: #a8a8a8 !important
}
</style>
$scope.gridUsers = {
paginationPageSizes: [15, 30, 45],
paginationPageSize: 15,
enableColumnMenus: false,
data: $scope.users,
filterOptions: $scope.filterOptions,
columnDefs: [{ field: 'id', displayName: 'Id', width: '20%'},
{ field: 'name', displayName: 'Name', width: '25%', enableFiltering: true},
{ name: 'Actions', displayName: 'Actions', width: '55%', cellTemplate:
'<div class="grid-action-cell action-btns">'+
'<span class="btn-small"><span style="color:#214c77;">view</span> </a>' +
'<a ng-disabled={{!row.entity.isEditable}} ng-click="grid.appScope.edit(row.entity.id)" class="btn-small btn-link"><span ng-disabled={{!row.entity.isEditable}} style="color:#80bb41;">edit</span> </a>' +
'<a ng-disabled={{!row.entity.isEditable}} ng-click="grid.appScope.delete(row.entity.id)" class="btn-small btn-link"> <span ng-disabled={{!row.entity.isEditable}} style="color:#e15829;">delete</span> </a>'
'</div>'}
]
};
Service.GetAllUsers(function (response) {
if (response.length != 0) {
$scope.users = response;
$scope.gridUsers.data = $scope.users;
}
});
N.B。 - 您当前在当地的早午餐,以及您尝试推送的远程不存在的分支,必须具有相同的名称。