我正在开发分支A但是我需要修复一些与分支A上的功能无关的东西,所以我在分支B上修复了它。
问题是分支A仍然需要使用分支B中的更改。如何在不将这些提交添加到分支A的情况下使用此更改。即开发时我想在没有提交的情况下使用分支B中的更改在分支B中也在分支A中。
这样,一旦PR进行审查,分支A和B可以单独审查。
答案 0 :(得分:0)
在单独的分支中开发两个不同但依赖的任务不是一个好习惯。通常,如果function stoptimes(stop) {
downloadiv("./times.php?stop=" + stop, function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("weather");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("arrival");
document.getElementById("h2").innerHTML = name;
}
});
}
function downloadiv(url, callback) {
var requesta = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
requesta.onreadystatechange = function() {
if (requesta.readyState == 4) {
requesta.onreadystatechange = donada;
callback(requesta, requesta.status);
}
};
requesta.open('GET', url, true);
requesta.send(null);
}
function donada() {}
function load() {
var map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(53.5, -8),
zoom: 7,
});
var infoWindow = new google.maps.InfoWindow;
geocoder = new google.maps.Geocoder();
// Change this depending on the name of your PHP file
downloadUrl("stop-locations.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var location = markers[i].getAttribute("name");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var lat=markers[i].getAttribute("lat");
var lng=markers[i].getAttribute("lng");
var html = "<b>" + name + "</b> <br/>";
var stopid = markers[i].getAttribute("stopid");
var marker = new google.maps.Marker({
position:point,
map: map
});
bindInfoWindow(marker, map, infoWindow, html, stopid);
}
});
}
function bindInfoWindow(marker, map, infoWindow, html, stopid) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
stoptimes(stopid);
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {}
依赖于task B
,则必须在开始task A
之前推送task A
。 Git主要提供分支选项,允许您同时开发独立任务。
但是当您处于开发阶段时,您可以轻松地将分支切换到分支。使用以下方式,
task B
答案 1 :(得分:0)
在开发分支A
期间,您可以使用B
对分支rebase
进行更改,在这种情况下,在分支A
中进行的所有提交都将高于提交分支B
,然后在完成分支A
的开发之后,您可以使用交互模式和B
选项使用rebase
删除从分支drop
复制的提交
使用B
将分支A
中的提交复制到分支rebase
:
git checkout `A`
git rebase `B`
使用B
删除分支A
中的分支rebase -i
中的提交:
git checkout `A`
git rebase -i HEAD~3
数字3
是分支A
和B
中提交的总次数。
在编辑器中,您将看到所有提交,例如,我们有来自分支B
的两个提交,其中包含消息commit-branch-b1
和commit-branch-b2
,另一个提交来自分支A
,其中包含消息{{1} }:
commit-branch-a1
现在要删除提交pick f533903 commit-branch-a1
pick c66cc92 commit-branch-b2
pick 647ab90 commit-branch-b1
和commit-branch-b2
,我们需要在提交哈希值附近将commit-branch-b1
更改为pick
:
drop
之后保存更改并继续pick f533903 commit-branch-a1
drop c66cc92 commit-branch-b2
drop 647ab90 commit-branch-b1
,结果提交rebase
和commit-branch-b2
将从分支commit-branch-b1
中删除。