如何下载旧版本的git项目

时间:2017-08-30 21:24:16

标签: git branch

我在GIT上有项目。我需要测试它的旧版本,而不会丢失实际版本。我更喜欢在我的计算机上安装2个文件夹:一个保留最新版本,一个保留旧版本。项目在一个分支。怎么做?我正在使用SourceTree,我的项目是在Visual Studio 2015中制作的C ++。

1 个答案:

答案 0 :(得分:2)

使用git worktree功能。

这样可以让您在检出新版本的情况下克隆您的存储库。 并在另一个文件夹中创建一个工作树,并检出另一个旧分支。

做类似的事情:

#include <QtWidgets> #include <windows.h> //link against user32.lib when compiling in MSVC #ifdef _MSC_VER #pragma comment(lib, "User32.lib") #endif class GlobalPrintScreenBlocker { public: GlobalPrintScreenBlocker():mHKeyboardHook(NULL) {} //to avoid leaking the hook procedure handle ~GlobalPrintScreenBlocker(){ unblock(); } //hook callback function (called on every system-wide key press) static LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) { if(nCode == HC_ACTION) { PKBDLLHOOKSTRUCT p = reinterpret_cast<PKBDLLHOOKSTRUCT>(lParam); if(p->vkCode == VK_SNAPSHOT) return 1; //block print-screen key } //this is not a message we are interested in return CallNextHookEx(NULL, //ignored paramater nCode, wParam, lParam); } void block(){ mHKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, //low-level keyboard hool &LowLevelKeyboardProc, //callback GetModuleHandle(NULL), 0); } void unblock(){ if(mHKeyboardHook) UnhookWindowsHookEx(mHKeyboardHook); mHKeyboardHook = NULL; } private: HHOOK mHKeyboardHook; }; int main(int argc, char* argv[]) { QApplication a(argc, argv); GlobalPrintScreenBlocker blocker; QPushButton button("Disable ScreenShot"); button.setCheckable(true); QObject::connect(&button, &QPushButton::toggled, [&](bool isChecked){ if(isChecked) blocker.block(); else blocker.unblock(); }); button.show(); return a.exec(); }