如何获取/重置当前分支上的特定分支?

时间:2020-08-25 13:16:29

标签: git

我的结构如下:

master
ticketNumber01
ticketNumber02

因此,我的ticketNumber01分支是根据master创建的

ticketNumber02是根据ticketNumber01

创建的

如何在当前master分支上使用ticketNumber01git fetch / rebase以及ticketNumber02获取最新信息?

3 个答案:

答案 0 :(得分:0)

使用以下命令使其正常工作:

# in branch ticketNumber02
git fetch origin
git rebase origin/ticketNumber01
git rebase origin/master

这样我就可以使用fetch / rebase

正确更新我的分支

使用git fetch origin获取所有分支的参考。

然后使用git rebase origin/<branchName>将任何分支重新建立在当前分支上

答案 1 :(得分:-1)

提取后需要使用git merge。

#include <iostream>
#include <functional>
#include <memory>
 
class QTRO_1Source {
public:
    void hvEnabledChanged(bool) {};
    virtual bool hvEnabled() const = 0;
};
 
class QTRO_1SimpleSource : public QTRO_1Source {
public:
    bool hvEnabled() const override { return false; }
};
 
class QTRO_1 : public QTRO_1SimpleSource {
public:
    void write_hvEnabled(bool/*enabled*/) { }
};
 
 
template<typename ReplicaType, typename ValueType>
class ProxyProperty
{
public:
    using ReadFuncPtr = ValueType (ReplicaType::*)() const;
    using WriteFuncPtr = void (ReplicaType::*)(ValueType);
    using ChangeSigFuncPtr = void (ReplicaType::*)(ValueType);
    using UpdateHandlerFunctor = std::function<void(ValueType value)>;
    ProxyProperty(ReplicaType *replica,
                  ReadFuncPtr readFunc,
                  WriteFuncPtr writeFunc,
                  ChangeSigFuncPtr changeSignal,
                  UpdateHandlerFunctor updateHandler)
    {
        m_replica = replica;
        m_readFunc = readFunc;
        m_writeFunc = writeFunc;
        m_changeSignal = changeSignal;
        m_updateHandler = updateHandler;
    }
    template<typename T, typename HandlerT>
    void write(T value, HandlerT handler) {
        (m_replica->*m_writeFunc)(value);
    }
private:
    ReplicaType *m_replica;
    ReadFuncPtr m_readFunc;
    WriteFuncPtr m_writeFunc;
    ChangeSigFuncPtr m_changeSignal;
    UpdateHandlerFunctor m_updateHandler;
    int m_timeout{3000};
};
 
template<typename ReplicaType, typename ValueType, typename UpHandlerT>
auto createProxyProperty(ReplicaType *replica,
                         ValueType (ReplicaType::*readFunc)() const,
                         void (ReplicaType::*writeFunc)(ValueType),
                         void (ReplicaType::*changeSignal)(ValueType),
                         UpHandlerT upHandler)
{
    return std::make_unique<ProxyProperty<ReplicaType,ValueType> >(replica, readFunc, writeFunc, changeSignal, upHandler);
}
 
int main(int argc, char *argv[]){
    QTRO_1 model;
//    static auto p = createProxyProperty<QTRO_1, bool>(
    static auto p = createProxyProperty(
                &model,
                &QTRO_1::hvEnabled,
                &QTRO_1::write_hvEnabled,
                &QTRO_1::hvEnabledChanged,
        [](auto val) { std::cout<< "COSTAM"; }
    );
}

它应该获取系统的所有分支,然后您需要检出这些分支并获取最新更改。

git fetch         

然后结帐到要合并 master 更改的所需分支。 合并更改

git checkout master
git pull

ticketNumber1

相同

答案 2 :(得分:-1)

因此git fetch仅用于获取存储库,您正在寻找的是git merge,用于将更改合并到一个分支中。您可以像这样将ticketNumber01更改添加到主版本中

git checkout master
git merge ticketNumber01

如果您需要将多个分支合并到master中,例如ticketNumber01和ticketNumber02您可以这样

git checkout master
git merge ticketNumber01 ticketNumber02

ps:记住拉出所有分支以确保它们是最新的