标签: git

git cherry-pick --continue,' - no-edit'选项?

我正在编写一个用于迁移git repos的脚本.关于樱桃挑选冲突,我跑

git add .
git cherry-pick --continue
Run Code Online (Sandbox Code Playgroud)

这会调出vim,提示我保存提交消息并冻结脚本.我正在寻找一个命令行选项,--no-edit或者--porcelain来解决这个问题.

丑陋的终端黑客也可能受到欢迎;)

git git-cherry-pick

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

SourceTree可以并排显示差异

我最近开始使用SourchTree.

差异的默认格式是使用" - "或"+"来显示更改.
我喜欢并排放置2个文件并显示更改行.

但是,我找不到更改格式的选项.你能帮我吗?

git diff atlassian-sourcetree sourcetree

11
推荐指数
2
解决办法
3766
查看次数

GIT:致命:内存不足,malloc失败(试图分配889192448字节)

将项目推送到tfs GIT时出现此错误.

致命:内存不足,malloc失败(试图分配889192448字节)

git

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

使用difftool在同一文件的分阶段和非分阶段版本之间的差异

有没有办法查看同一文件的版本stagedunstaged版本之间的差异?

例如:

Changes to be committed:

    modified:   conf/application.conf

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   conf/application.conf
Run Code Online (Sandbox Code Playgroud)

当我进行更改然后再次修改文件而不进行暂存时会发生这种情况.

EDIT

git status -vv命令还不够好,因为我需要使用diff/ difftool命令.这是因为在实践中,太多文件中的更改太多,滚动浏览所有文件并不高效.但diff/ difftool允许我指定我感兴趣的文件.

git diff git-diff difftool git-stage

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

ArtifactId使用Maven Release Plugin附加到SCM Url

我有一个所有项目的主POM.POM包含以下SCM部分:

    <groupId>com.company</groupId>
    <artifactId>master</artifactId>
    <version>...</version>
    <packaging>pom</packaging>

    <scm>
        <connection>scm:git:https://user@bitbucket.server.de/scm/${scm.repository.name}/${scm.project.name}.git</connection>
        <developerConnection>scm:git:https://user@bitbucket.server.de/scm/${scm.repository.name}/${scm.project.name}.git</developerConnection>
        <url>https://bitbucket.server.de/scm/${scm.repository.name}/${scm.project.name}.git</url>
        <tag>HEAD</tag>
    </scm>

<properties>
     <project.scm.id>bitbucket-scm</project.scm.id>
     <scm.project.name>maven-master</scm.project.name>
     <scm.repository.name>tsu</scm.repository.name>
</properties>
Run Code Online (Sandbox Code Playgroud)

现在,我有一个maven多模块项目,这是父POM:

    <parent>
        <groupId>com.company</groupId>
        <artifactId>master</artifactId>
        <version>...</version>
    </parent>

    <groupId>com.company.group</groupId>
    <artifactId>project-foo</artifactId>
    <version>...</version>
    <packaging>jar</packaging>

    <name>project FOO</name>

    <properties>
        <scm.project.name>project-foo</scm.project.name>
    </properties>
Run Code Online (Sandbox Code Playgroud)

执行发布插件以释放主POM(第一个片段)时,它工作正常.但是,当执行发布插件以释放多模块项目(第二个片段)时,它会失败,说:

[错误]无法执行目标org.apache.maven.plugins:maven-release-plugin:2.5.3:在project project-foo上准备(default-cli):无法提交文件[ERROR]提供者消息:[ERROR] git-push命令失败.[ERROR]命令输出:[ERROR]致命:远程错误:未找到存储库[错误]请求的存储库不存在,或者您没有[错误]访问它的权限.

在日志中,我还可以看到存储库URL.

对于Master POM的工作版本,它使用

https:// user:********@ bitbucket.server.de/scm/tsu/maven-master.git refs/heads/dev:refs/heads/dev

对于多模块项目的非工作版本,它使用

https:// user:********@ bitbucket.server.de/scm/tsu/project-foo.git/project-foo refs/heads/dev:refs/heads/dev

在发布多模块项目时,似乎将项目的工件ID附加到URL.

将整个SCM部分复制到多模块项目并进行修改时,它可以正常工作.但是,我只想在主POM中插入单个属性,以避免将SCM标记复制到每个项目.

任何有助于解决此问题的帮助表示赞赏.

git bitbucket maven-release-plugin

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

如何解决Git错误"请求的上游分支'上游/主'不存在"

我试图遵循一些步骤来贡献GitHub上的存储库,其中一个步骤不起作用.步骤如下:https://github.com/wdbm/qTox/blob/master/CONTRIBUTING.md#how-to-open-a-pull-request.

我在GitHub上分叉存储库.

我克隆了存储库:

git clone https://github.com/<YOUR_USER>/qTox.git
Run Code Online (Sandbox Code Playgroud)

我访问本地存储库的目录:

cd qTox
Run Code Online (Sandbox Code Playgroud)

我添加了上游远程,以便能够从上游存储库中获取:

git remote add upstream https://github.com/qTox/qTox.git
Run Code Online (Sandbox Code Playgroud)

我尝试将本地主分支指向上游存储库:

git branch master --set-upstream-to=upstream/master
Run Code Online (Sandbox Code Playgroud)

此命令失败,并显示以下错误消息:

error: the requested upstream branch 'upstream/master' does not exist
hint: 
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint: 
hint: If you are planning to push out a new local branch that …
Run Code Online (Sandbox Code Playgroud)

git

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


Git:你如何结账所有删除的文件?

在git中,我熟悉如何使用git checkout -- [<paths>...]语法检查已删除的单个文件(建议您这样做)git status.

要获取所有文件,您可以创建一个列表并将列表作为上述命令的参数.

但是,当你只想要删除所有已删除的文件(即你的cwd中的rm -rf,然后你想恢复所有文件)时,生成该列表是不优雅的.

如何查看所有已删除的文件?

git version-control configuration-management git-checkout

11
推荐指数
4
解决办法
4411
查看次数

Gitlab中"允许推送"和"允许合并"的含义

在Gitlab保护的分支中"允许推送"和"允许合并"的含义是什么

git merge push gitlab

11
推荐指数
2
解决办法
3146
查看次数

git将目录移动到另一个存储库,同时保留历史记录

首先 - 向这个问题道歉.关于它的话题已经很多了.但我对他们没有太多运气.我对git缺乏熟悉并没有多大帮助.

我正在将一个文件夹从一个git repo移动到另一个(已经存在).例如

repo-1
---- dir1
---- dir2
---- dir3
---- dir-to-move
---- dir5

repo-2
---- dir1
---- dir2
---- dir3
Run Code Online (Sandbox Code Playgroud)

最后我希望回购看起来像

repo-1
---- dir1
---- dir2
---- dir3
---- dir-to-move
---- dir5

repo-2
---- dir1
---- dir2
---- dir3
---- dir-to-move
Run Code Online (Sandbox Code Playgroud)

也就是说,在两个回购中都存在dir-to-move.但最终我会将最新的更改迁移到repo-2并从repo-1中移除dir-to-move.

我最初的研究让我相信我需要使用filter-branch.例如

如何使用`git format-patch`和`git am`将文件从一个git repo移动到另一个保存历史记录

我已经知道子树取代了这种方法.然而,它并没有达到我的预期.我以为我能够做类似的事情

repo-1工作区中

git subtree split -P dir-to-move -b split
Run Code Online (Sandbox Code Playgroud)

拆分分支过滤到仅dir-to-move及其历史记录.然后在repo-2工作区 …

git

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