小编Mil*_*red的帖子

git rebase interactive:squash merge提交在一起

我希望有一个简单的解决方案,可以在交互式rebase期间将两个合并提交压缩在一起.

我的存储库看起来像:

   X --- Y --------- M1 -------- M2 (my-feature)
  /                 /           /
 /                 /           /
a --- b --- c --- d --- e --- f (stable)
Run Code Online (Sandbox Code Playgroud)

也就是说,我有一个my-feature最近合并过两次的分支,中间没有真正的提交.我不只是想重新定义my-feature分支,因为它是它自己的已发布分支,我只想将最后两个合并提交压缩成一个(还没有发布那些提交)

   X --- Y ---- M (my-feature)
  /            /
 /            /
a --- ... -- f (stable)
Run Code Online (Sandbox Code Playgroud)

我试过了:

git rebase -p -i M1^
Run Code Online (Sandbox Code Playgroud)

但我得到了:

Refusing to squash a merge: M2
Run Code Online (Sandbox Code Playgroud)

我最后做的是:

git checkout my-feature
git reset --soft HEAD^  # remove the last commit (M2) but keep the changes …
Run Code Online (Sandbox Code Playgroud)

git merge interactive rebase squash

52
推荐指数
3
解决办法
3万
查看次数

如何指定在git中使用哪个SSH密钥进行git push以便将镜像作为镜像?

我有一个在git.debian.org(alioth)上托管的项目,我想在http://gitorious.org上配置一个post-receive钩子来更新存储库的镜像.

我想我必须要用 git push --mirror gitorious

现在,我需要让Alioth获得授权才能获得成功.我怎么做?

我想我需要在gitorious上配置用户并为其创建一个ssh密钥.然后当我在post-receive钩子中执行git push时,请确保使用此ssh键.

我可以使用~/.ssh/config但问题是许多用户可以推送aloth,每个人都必须登录并配置~/.ssh/config.相反,我想要一个命令行选项或环境变量来告诉ssh使用哪个键.我能这样做吗?

另外,您是否有其他想法可以实现镜像?并且,是否有可能以相反的方式配置它(有效推动阿里斯)?

git hook gitorious mirroring git-push

39
推荐指数
2
解决办法
4万
查看次数

Docker主机重启时会发生什么?

Docker主机关闭并重新启动后会发生什么?

  • 将重新启动正在运行的图像吗?
  • 将对这些图像所做的更改是否仍然存在,或者是否会生成图像的新实例并且更改会丢失?
  • docker是否有任何配置选项,例如启动时自动执行的图像列表以及运行图像的选项?哪里?如果没有,我想只有docker命令行可以用来改变docker状态.该状态存储在哪里(我想某处/var).这对备份docker状态很有用.

(我想在FAQ中找到这个)

docker

27
推荐指数
1
解决办法
9345
查看次数

mercurial.hg源存储库在哪里

我查看了mercurial网站,我找不到一个指向mercurial源存储库本身位置的链接.你知道我的位置吗?

mercurial

15
推荐指数
1
解决办法
3134
查看次数

为什么git add .git/hooks/my-hook是不可能的

我想在给定存储库的克隆中始终存在一些钩子.有没有办法在存储库中的.git/hooks中添加文件?

谢谢

git git-add githooks

15
推荐指数
2
解决办法
4355
查看次数

LLVM程序集:为寄存器分配整数常量

我正在编写一个使用LLVM作为后端的编译器,我的编译器生成以下LLVM汇编代码

@0 = private constant [25 x i8] c"Hello World to %dntegers\00"

declare void @printf (i8*, i32)

define void @main () {
  %1 = getelementptr [25 x i8]* @0, i32 0, i32 0
  %2 = 1
  tail call void @printf(i8* %1, i32 %2)
  ret void
}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

c.ll:8:8: error: expected instruction opcode
  %2 = 1
       ^
Run Code Online (Sandbox Code Playgroud)

文档显示了这样的例子.

你知道如何让这个工作吗?目前,我正在使用:

  %2 = add i32 0, 1 ; FIXME
Run Code Online (Sandbox Code Playgroud)

assembly integer constants llvm

13
推荐指数
1
解决办法
4563
查看次数

在Linux上构建VTK时收到错误"GLintptr尚未声明"

在Linux上构建VTK时,我收到以下错误:

In file included from /usr/include/GL/glx.h:333:0,
             from /home/mildred/Work/3DKF/VTK/Rendering/vtkXOpenGLRenderWindow.cxx:31:
/usr/include/GL/glxext.h:480:143: error: ‘GLintptr’ has not been declared
Run Code Online (Sandbox Code Playgroud)

linux build vtk mesa

11
推荐指数
1
解决办法
4992
查看次数

ELF:链接:为什么我在.so文件中获得未定义的引用

我正在尝试构建针对wxWidgets的程序,并且我收到链接器错误.我想真正理解它的含义.错误是:

/usr/lib/libwx_baseu-2.8.so: undefined reference to `std::ctype<char>::_M_widen_init() const@GLIBCXX_3.4.11'
Run Code Online (Sandbox Code Playgroud)

我不明白的是错误的原因libwx_baseu-2.8.so.我认为.so文件的所有符号都已解析,与.o仍需要链接的文件相反.

当我ldd.so,我得到能够解决所有的链接库,所以有没有问题:

$ ldd /usr/lib/libwx_baseu-2.8.so
 linux-gate.so.1 =>  (0x00476000)
 libz.so.1 => /lib/libz.so.1 (0x00d9c000)
 libdl.so.2 => /lib/libdl.so.2 (0x002a8000)
 libm.so.6 => /lib/libm.so.6 (0x00759000)
 libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x002ad000)
 libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0068d000)
 libpthread.so.0 => /lib/libpthread.so.0 (0x006f0000)
 libc.so.6 => /lib/libc.so.6 (0x00477000)
 /lib/ld-linux.so.2 (0x007f6000)
Run Code Online (Sandbox Code Playgroud)

这是否意味着.so文件未正确编译(在这种情况下,它是我的分发包中的错误)或者是否意味着我的特定程序的链接器命令行上缺少库?

另外,您知道如何在ELF文件中获取未定义符号的列表.我试过readelf -s但我找不到丢失的符号.

谢谢.

米尔德里德

c++ linker symbols shared-libraries elf

7
推荐指数
2
解决办法
2万
查看次数

git merge:过滤文件以避免愚蠢的冲突(如空格或大小写更改)

我目前正处于一个非常复杂的git合并中,我有很多冲突.冲突是关于两个Ada源文件.

我想进行合并,忽略空格更改和大小写更改(因为Ada语言不区分大小写).你知道是否有办法告诉git在合并之前忽略某些变化?

我的解决方案目前是在合并之前在两个分支上运行GNAT漂亮打印,但如果git中包含一个通用解决方案,那将对我有很大帮助.

git merge whitespace conflict case-insensitive

7
推荐指数
1
解决办法
1604
查看次数

LLVM程序集:使用varargs调用函数

我想在LLVM程序集中定义一个函数,该函数作为参数:

  • 子功能的标识符
  • 一个vararg

此函数应该进行一些预处理,找到标识符的正确函数并使用vararg调用它,并返回其结果.

就像是:

define ??? @1 (i32 %identifier, ...vararg...)
{
  switch i32 %identifier, label %def, i32 1, label %a
a:
  %1 = tail call @function_for_a, ...vararg...
  ret ??? %1
def:
  ret void
}
Run Code Online (Sandbox Code Playgroud)

这似乎不可能.还有办法吗?我认为应该可以使用普通的汇编程序.

这旨在成为面向对象语言的调度功能.我希望它快.

我想要的是一种方式:

  • 从堆栈中删除@ 1使用的第一个参数
  • 分支到第二个功能.

然后执行第二个函数代替第一个函数(它是一个尾调用),但是带有一个参数列表,该参数列表与第一个函数(第一个函数的vararg)不完全相同.

assembly llvm variadic-functions

6
推荐指数
1
解决办法
2216
查看次数

在Qt上,qDebug qWarning qCritical和qFatal日志默认位于何处?

在linux上运行我的Qt5应用程序时,我看不到qDebug,qWarning,qCritical或qFatal的任何输出.我知道我可以使用qInstallMsgHandler安装消息处理程序并查看它们,但这是相当重量级的.

我只想查看qWarning日志,看看是否有任何错误连接的信号.有没有办法看这个日志?一个特殊的命令行选项,一个环境变量?

我想我记得在过去,所有内容都打印到stderr,也许这是Qt5的变化?

qt qdebug qt5

1
推荐指数
2
解决办法
3084
查看次数