草庐IT

left_only

全部标签

Git 子树 : Use only subrepository instead of whole repository

我有一个项目使用了一些第3方库。所以目录结构是这样的:MY_COOL_PROJECT3rdPartyLIB_1LIB_2SourceMY_PROJECT这些库位于单独的存储库中。所以,如果我想为第3方库使用git存储库,我可以这样做:gitsubtreeadd--prefix3rdParty/LIB_1--squashhttp://My3rdPartyLibs.com/lib1.gitmaster但是,在lib1.git存储库中,我只需要一个bin文件夹。它还包含文档、示例等文件夹。如何只将我的存储库“连接”到lib1/bin文件夹而不是整个存储库?这可能吗?

git - 如何配置 "git pull --ff-only"和 "git merge --no-ff"

对我来说,一个典型的git工作流程是克隆一个远程存储库并使用gitpull来保持它是最新的。我不想在pull时merge提交,所以我使用--ff-only选项。我还为特色工作创建了本地分支机构。我想保留分支历史记录,所以当我将本地分支merge回我的本地克隆时,我使用--no-ff选项。我如何配置git以默认使用这些选项?目前我的.gitconfig看起来像这样:[merge]ff=false[pull]ff=only但是,gitpull(实际上是gitfetch和gitmerge)似乎选择了merge选项并因此创建了merge。 最佳答案

ubuntu - docker 错误 : no space left on device

我通过以下方式在Debian7机器上安装了docker$echodebhttp://get.docker.io/ubuntudockermain>/etc/apt/sources.list.d/docker.list$sudoapt-getupdate$curl-sSLhttps://get.docker.com/ubuntu/|sudosh之后,当我第一次尝试创建图像时,它失败并出现以下错误time="2015-06-02T14:26:37-04:00"level=infomsg="[8]Systemerror:write/sys/fs/cgroup/docker/01f5670fb

ubuntu - docker 错误 : no space left on device

我通过以下方式在Debian7机器上安装了docker$echodebhttp://get.docker.io/ubuntudockermain>/etc/apt/sources.list.d/docker.list$sudoapt-getupdate$curl-sSLhttps://get.docker.com/ubuntu/|sudosh之后,当我第一次尝试创建图像时,它失败并出现以下错误time="2015-06-02T14:26:37-04:00"level=infomsg="[8]Systemerror:write/sys/fs/cgroup/docker/01f5670fb

git - 如何实现不允许的 `git --no-ff --ff-only`

作为我们的rebase-heavy工作流程的一部分,我希望在master分支上使用merge。特别是,我只想在主题分支重新基于最近的主提交时才merge,从而使任何merge成为快进的merge。我可以通过使用:gitmerge--ff-only此外,我想记录主题分支与空提交的集成,这就是为什么我想使用--no-ff强制该行为的原因:gitmerge--no-ff不过,我真正想要的是两者的结合:仅在微不足道时merge,但无论如何让我记录下来。Git认为致命:不能将--no-ff与--ff-only结合使用。这对某些人来说似乎是不言而喻的。gitmerge--edit--no-ffto

git - .gitignore : Ignore one specific directory and that one only

这个问题在这里已经有了答案:HowtoexcludefileonlyfromrootfolderinGit(5个答案)关闭9年前。我有这个目录结构./bin/./sometool/bin/...以及其他一些文件和目录。如果我想避免跟踪java类文件,我应该将其添加到.gitignore文件中:bin/但是,这似乎也忽略了路径./sometool/bin这是否正确,如果正确,我如何获得我想要的行为。

git - git rebase 和 git merge --ff-only 之间有区别吗

从我读到的内容来看,它们都帮助我们获得了线性历史。根据我的实验,rebase一直有效。但是merge--ff-only只适用于可以快进的场景。我还注意到,gitmerge创建了一个merge提交,但是如果我们使用--ff-only,它会给出一个线性历史,基本上等于gitrebase。所以--ff-only扼杀了gitmerge的目的,对吧?那么它们之间的实际区别是什么? 最佳答案 请注意gitrebase与gitmerge的工作不同(有或没有--ff-only)。什么rebase所做的是获取现有的提交并复制它们。例如,假设您在bra

git - 如何在 git 中执行 "local-only commit"?

我正在使用git,我希望能够创建一个不与远程存储库同步的提交。这样的提交必须“float”在本地存储库中的所有其他提交之上,以避免影响历史记录。我可以使用这样的提交来存储特定于本地的更改(配置更改、调试标志、本地解决方法等)。目前,我在提交时手动rebase以将提交重新排序回顶部,并且我使用HEAD^推送以避免推送本地更改。我也考虑过将更改放入存储中,但这不太方便,因为它妨碍了存储的正常使用。另一种选择是简单地保留所有这些本地更改未暂存,并在每次我想提交时使用gitadd-p。然而,随着大量琐碎的本地更改,这变得很麻烦。这是我当前工作流程的示例:我的仓库最初看起来像A---B---C-

Git diff --name-only 并复制该列表

我只想获取两次修订之间更改的文件列表,这很简单:gitdiff-–name-onlycommit1commit2>/path/to/my/file但是,如果我想将所有列出的文件复制到另一个地方,我应该怎么写呢?我需要完全相同的目录结构来复制文件。比如我修改和添加了文件:/protected/texts/file1.txt/protected/scripts/index.php/public/pics/pic1.png我想在/home/changes/中包含所有更改和添加的文件:/home/changes/protected/texts/file1.txt/home/changes/pr

c - 写入()调用失败 : No space left on device: ENOSPC handling

write()调用失败,errno=28(ENOSPC),设备上没有剩余空间。我正在尝试通过以下方式处理此错误。当磁盘已满时,我正在执行lseek()以将文件指针移动到文件的开头。我相信现在write()应该不会失败,因为现在文件将从顶部被覆盖(文件不会扩展)。但是write()调用仍然失败并出现相同的错误。请解释此行为。if(errno==ENOSPC){curPos=lseek(gi4LogFd,0,SEEK_SET);break;} 最佳答案 仅仅因为您写入了文件的开头并不意味着文件系统将写入磁盘上的同一空间或者文件开头的空间