git merge 导致不合理的冲突

2024-01-05

我基本上在从 current_iteration 合并到我的分支的几乎所有文件上都遇到了冲突。这真是令人抓狂,让许多人惊讶不已、摸不着头脑。

我目前正在使用 git 版本的 mac 工作2.18.0。我的同行都在Windows git版本上工作2.12.2.windows.2.

MacBook 配置

macbook-pro:~ chris$ git config -l
credential.helper=osxkeychain
user.email=ch[email protected] /cdn-cgi/l/email-protection
user.name=Chris Hinshaw
user.autocrlf=false

Windows配置

C:> git config -l
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=C:/Users/…
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.required=true
filter.lfs.process=git-lfs filter-process
credential.helper=manager
merge.tool=kdiff3
mergetool.kdiff3.cmd="C:\\Program Files\\KDiff3\\kdiff3" $BASE $LOCAL $REMOTE -o $MERGED
difftool.kdiff3.path="C:\\Program Files\\KDiff3\\kdiff3"
difftool.kdiff3.keepbackup=false
difftool.kdiff3.trustexitcode=false
alias.lg=!git lg1
alias.lg1=!git lg1-specific --all
alias.lg2=!git lg2-specific --all
alias.lg3=!git lg3-specific --all
alias.lg1-specific=log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)'
alias.lg2-specific=log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)'
alias.lg3-specific=log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset) %C(bold cyan)(committed: %cD)%C(reset) %C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset)%n''          %C(dim white)- %an <%ae> %C(reset) %C(dim white)(committer: %cn <%ce>)%C(reset)'
core.whitespace=cr-at-eol
core.autocrlf=true
credential.helper=manager
http.emptyauth=true 

当前迭代分支更改

在这里,我正在检查 current_iteration 并确保它完全符合 日期。我表明差异是一行更改,其中 组件注释已从类中删除。

macbook-pro:devel chris$ git checkout current_iteration
macbook-pro:devel chris$ git pull origin 

commit 81dea298657c882a5c32ee3f30b459643035024e
Author: Them
Date:   Wed Aug 1 11:12:12 2018 -0500


commit 0676ffd81a83cfbdf18a3b1fc93f31439d7e3a00
Author: Me
Date:   Mon Jul 30 18:01:53 2018 -0500


commit 0d8f7a2dfe35d43ef03af339694479189ff86b79
Author: Me
Date:   Wed Jul 25 15:04:44 2018 -0500

将应用于我当前分支的差异

git diff 81dea~1 ./somepath/OjaiLifecycleListener.java
./somepath/OjaiLifecycleListener.javaindex 08c3e66c..f0864c52 100644
--- a/somepath/OjaiLifecycleListener.java
+++ b/somepath/OjaiLifecycleListener.java
@@ -14,7 +14,7 @@ import java.util.Collection;
 import java.util.Map;
 import java.util.function.Supplier;

-@Component
+
 public class OjaiLifecycleListener implements SmartLifecycle {

     private static final Logger logger = LoggerFactory.getLogger(OjaiLifecycleListener.class);

我的分行

macbook-pro:devel chris$ git checkout feature/mapr-autoinit
macbook-pro:devel chris$ git pull origin 

git diff feature/feature/mapr-autoinit..current_iteration  ./somepath/OjaiLifecycleListener.java diff --git a/somepath/OjaiLifecycleListener.java index 5d29f3eb..f0864c52 100644
--- a/somepath/OjaiLifecycleListener.java
+++ b/somepath/OjaiLifecycleListener.java @@ -14,7 +14,7 @@ import java.util.Collection;  import java.util.Map;  import java.util.function.Supplier;  
-@Component
+  public class OjaiLifecycleListener implements SmartLifecycle {

     private static final Logger logger = LoggerFactory.getLogger(OjaiLifecycleListener.class); @@ -52,23 +52,25 @@ public class OjaiLifecycleListener implements SmartLifecycle {
     }

     private void createIfMissing(Class<? extends OjaiRepository> cls) throws IOException {
-        logger.debug("Configuring reopsitory {}", cls.getName());
+        logger.info("configuring reopsitory {}", cls.getName());
         // final Table table = cls.getAnnotation(Table.class); // No worky cuz of cglib
         final Table table = AnnotationUtils.findAnnotation(cls, Table.class);
         if (table != null) {
-            logger.debug("Found table annotation for class {} with table id {}", cls.getSimpleName(), table.name());
+            logger.info("Found table annotation for class {} with table id {}", cls.getSimpleName(), table.name());
             final String tablePath = tableAdmin.getEnvironmentQualifiedPath(table.name()).toString();
             boolean exists = tableAdmin.tableExists(tablePath);
-            logger.info("Repository => {},  Path => {}, Exists => {} ", cls.getSimpleName(), tablePath, exists);
+            logger.info("Table for class {} with table path {} exists : {} ", cls.getSimpleName(), tablePath, exists);
+
             if (! exists) {
                 logger.info("Creating table for class {} with table path {}", cls.getSimpleName(), tablePath);
                 tableAdmin.createTable(tablePath, defaultTablePerms, defaultCFPerms);
             }
         } else {
-            logger.warn("Repository {} is missing @Table annotation", cls);
+            logger.warn("Found table without table annotation {} ", cls);
         }
     }  
+
     @Override
     public boolean isAutoStartup() {
         return true;

对我来说,上面的补丁看起来完全合理,应该可以很好地应用。没有重复的公共线被更改。

Merge

git merge -s recursive -Xignore-space-at-eol -Xignore-space-change current_iteration

这导致大量的冲突。不过我们可以看看 单个文件

<<<<<<< HEAD
@Component
public class OjaiLifecycleListener implements SmartLifecycle {
=======
>>>>>>> current_iteration

public class OjaiLifecycleListener implements SmartLifecycle {

<<<<<<< HEAD
    private final Supplier<Collection<Class<? extends OjaiRepository>>> ojaiRepositorySupplier;
    private final OjaiTableAdmin tableAdmin;
    private final Map<String, String> defaultTablePerms;
    private final Map<String, String> defaultCFPerms;

    private volatile boolean isStarted = false;

=======
    private static final Logger logger = LoggerFactory.getLogger(OjaiLifecycleListener.class);

    private final Supplier<Collection<Class<? extends OjaiRepository>>> ojaiRepositorySupplier;
    private final OjaiTableAdmin tableAdmin;
    private final Map<String, String> defaultTablePerms;
    private final Map<String, String> defaultCFPerms;

    private volatile boolean isStarted = false;

>>>>>>> current_iteration
    @Inject
    public OjaiLifecycleListener(Supplier<Collection<Class<? extends OjaiRepository>>> ojaiRepositorySupplier, OjaiTableAdmin tableAdmin,
                                 @Named("mapr.mapr.ojai.table.perms") Map<String, String> defaultTablePerms,
                                 @Named("mapr.mapr.ojai.cf.perms") Map<String, String> defaultCFPerms) {
        this.ojaiRepositorySupplier = ojaiRepositorySupplier;
        this.tableAdmin = tableAdmin;
        this.defaultTablePerms = defaultTablePerms;
        this.defaultCFPerms = defaultCFPerms;
    }

    @Override
    public void start() {
        logger.info("Configuring Ojai Tables");
        if (isStarted) return;

        ojaiRepositorySupplier.get().forEach(c -> {
            try {
                createIfMissing(c);
            } catch (IOException e) {
               throw new RuntimeException("Failed to create ojai table: " +  c.getName(), e);
            }
        });
        isStarted = true;
    }

    private void createIfMissing(Class<? extends OjaiRepository> cls) throws IOException {
<<<<<<< HEAD
        logger.debug("Configuring reopsitory {}", cls.getName());
        // final Table table = cls.getAnnotation(Table.class); // No worky cuz of cglib
        final Table table = AnnotationUtils.findAnnotation(cls, Table.class);
        if (table != null) {
            logger.debug("Found table annotation for class {} with table id {}", cls.getSimpleName(), table.name());
            final String tablePath = tableAdmin.getEnvironmentQualifiedPath(table.name()).toString();
            boolean exists = tableAdmin.tableExists(tablePath);
            logger.info("Repository => {},  Path => {}, Exists => {} ", cls.getSimpleName(), tablePath, exists);
=======
        logger.info("configuring reopsitory {}", cls.getName());
        // final Table table = cls.getAnnotation(Table.class); // No worky cuz of cglib
        final Table table = AnnotationUtils.findAnnotation(cls, Table.class);
        if (table != null) {
            logger.info("Found table annotation for class {} with table id {}", cls.getSimpleName(), table.name());
            final String tablePath = tableAdmin.getEnvironmentQualifiedPath(table.name()).toString();
            boolean exists = tableAdmin.tableExists(tablePath);
            logger.info("Table for class {} with table path {} exists : {} ", cls.getSimpleName(), tablePath, exists);

>>>>>>> current_iteration
            if (! exists) {
                logger.info("Creating table for class {} with table path {}", cls.getSimpleName(), tablePath);
                tableAdmin.createTable(tablePath, defaultTablePerms, defaultCFPerms);
            }
        } else {
<<<<<<< HEAD
            logger.warn("Repository {} is missing @Table annotation", cls);
=======
            logger.warn("Found table without table annotation {} ", cls);
>>>>>>> current_iteration
        }
    }

我研究过空白问题并尝试了一切可能 忽略空格的组合。我尝试过使用他们的配置 选项以及 kdiff 合并选项。我尝试过使用 用于重新格式化文件的 dos2unix 工具。我唯一能想到的是 这是 autosquash 选项不总是重播的问题 在我的本地分支上正确更改。顺便说一句,我们正在使用 TFS,它是 Windows git 存储库(如果这有什么区别的话)。

Update 1

抱歉,我正在重命名分支以使其更符合 git 标准。只有两个分支 current_iteration 和 features/mapr-autoinit。

import javax.inject.Named;
import javax.persistence.Table;
import java.io.IOException;
import java.util.Collection;
import java.util.Map;
import java.util.function.Supplier;

<<<<<<< HEAD
@Component
public class OjaiLifecycleListener implements SmartLifecycle {
||||||| merged common ancestors
@Service
public class OjaiLifecycleListener implements Lifecycle {
=======
>>>>>>> current_iteration

public class OjaiLifecycleListener implements SmartLifecycle {

<<<<<<< HEAD
    private final Supplier<Collection<Class<? extends OjaiRepository>>> ojaiRepositorySupplier;
    private final OjaiTableAdmin tableAdmin;
    private final Map<String, String> defaultTablePerms;
    private final Map<String, String> defaultCFPerms;
||||||| merged common ancestors
=======
    private static final Logger logger = LoggerFactory.getLogger(OjaiLifecycleListener.class);
>>>>>>> current_iteration

<<<<<<< HEAD
    private volatile boolean isStarted = false;
||||||| merged common ancestors
    private final ApplicationContext context;
=======
    private final Supplier<Collection<Class<? extends OjaiRepository>>> ojaiRepositorySupplier;
    private final OjaiTableAdmin tableAdmin;
    private final Map<String, String> defaultTablePerms;
    private final Map<String, String> defaultCFPerms;
>>>>>>> current_iteration

<<<<<<< HEAD
    @Inject
    public OjaiLifecycleListener(Supplier<Collection<Class<? extends OjaiRepository>>> ojaiRepositorySupplier, OjaiTableAdmin tableAdmin,
                                 @Named("mapr.mapr.ojai.table.perms") Map<String, String> defaultTablePerms,
                                 @Named("mapr.mapr.ojai.cf.perms") Map<String, String> defaultCFPerms) {
        this.ojaiRepositorySupplier = ojaiRepositorySupplier;
        this.tableAdmin = tableAdmin;
        this.defaultTablePerms = defaultTablePerms;
        this.defaultCFPerms = defaultCFPerms;
||||||| merged common ancestors
    public OjaiLifecycleListener(ApplicationContext context) {

        this.context = context;
=======
    private volatile boolean isStarted = false;

    @Inject
    public OjaiLifecycleListener(Supplier<Collection<Class<? extends OjaiRepository>>> ojaiRepositorySupplier, OjaiTableAdmin tableAdmin,
                                 @Named("mapr.mapr.ojai.table.perms") Map<String, String> defaultTablePerms,
                                 @Named("mapr.mapr.ojai.cf.perms") Map<String, String> defaultCFPerms) {
        this.ojaiRepositorySupplier = ojaiRepositorySupplier;
        this.tableAdmin = tableAdmin;
        this.defaultTablePerms = defaultTablePerms;
        this.defaultCFPerms = defaultCFPerms;
>>>>>>> current_iteration
    }

    @Override
    public void start() {
<<<<<<< HEAD
        logger.info("Configuring Ojai Tables");
        if (isStarted) return;
||||||| merged common ancestors
        logger.info("starting ojai listener");
        final Map<String, OjaiRepository> repositories = context.getBeansOfType(OjaiRepository.class);
        logger.info("found {} ojai repositories", repositories.size());
        repositories.forEach(OjaiLifecycleListener::createIfMissing);
=======
        logger.info("Configuring Ojai Tables");
        if (isStarted) return;

        ojaiRepositorySupplier.get().forEach(c -> {
            try {
                createIfMissing(c);
            } catch (IOException e) {
               throw new RuntimeException("Failed to create ojai table: " +  c.getName(), e);
            }
        });
        isStarted = true;
    }
>>>>>>> current_iteration

<<<<<<< HEAD
        ojaiRepositorySupplier.get().forEach(c -> {
            try {
                createIfMissing(c);
            } catch (IOException e) {
               throw new RuntimeException("Failed to create ojai table: " +  c.getName(), e);
            }
        });
        isStarted = true;
    }

    private void createIfMissing(Class<? extends OjaiRepository> cls) throws IOException {
        logger.debug("Configuring reopsitory {}", cls.getName());
        // final Table table = cls.getAnnotation(Table.class); // No worky cuz of cglib
        final Table table = AnnotationUtils.findAnnotation(cls, Table.class);
        if (table != null) {
            logger.debug("Found table annotation for class {} with table id {}", cls.getSimpleName(), table.name());
            final String tablePath = tableAdmin.getEnvironmentQualifiedPath(table.name()).toString();
            boolean exists = tableAdmin.tableExists(tablePath);
            logger.info("Repository => {},  Path => {}, Exists => {} ", cls.getSimpleName(), tablePath, exists);
            if (! exists) {
                logger.info("Creating table for class {} with table path {}", cls.getSimpleName(), tablePath);
                tableAdmin.createTable(tablePath, defaultTablePerms, defaultCFPerms);
            }
        } else {
            logger.warn("Repository {} is missing @Table annotation", cls);
        }
||||||| merged common ancestors
=======
    private void createIfMissing(Class<? extends OjaiRepository> cls) throws IOException {
        logger.info("configuring reopsitory {}", cls.getName());
        // final Table table = cls.getAnnotation(Table.class); // No worky cuz of cglib
        final Table table = AnnotationUtils.findAnnotation(cls, Table.class);
        if (table != null) {
            logger.info("Found table annotation for class {} with table id {}", cls.getSimpleName(), table.name());
            final String tablePath = tableAdmin.getEnvironmentQualifiedPath(table.name()).toString();
            boolean exists = tableAdmin.tableExists(tablePath);
            logger.info("Table for class {} with table path {} exists : {} ", cls.getSimpleName(), tablePath, exists);

            if (! exists) {
                logger.info("Creating table for class {} with table path {}", cls.getSimpleName(), tablePath);
                tableAdmin.createTable(tablePath, defaultTablePerms, defaultCFPerms);
            }
        } else {
            logger.warn("Found table without table annotation {} ", cls);
        }
>>>>>>> current_iteration
    }


    @Override
    public boolean isAutoStartup() {
        return true;
    }

    @Override
    public void stop(Runnable callback) {
        stop();
        callback.run();
    }

Update 2

@Torek 现在正在帮助我理解这一点。他指出了一个我不熟悉的命令 git merge base

macbook-pro:fido-service chris$ git merge-base current_iteration feature/mapr-autoinit
295c022c9f3d6da92e87f2addec1bbd7be30c5d7

根据输出,这可以解释冲突。

@@ -1,58 +1,97 @@
 package com.apc.its.services.fido.persistence.mapr;

-import com.mapr.fs.tables.MapRAdmin;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.Lifecycle;
-import org.springframework.stereotype.Service;
+import org.springframework.context.SmartLifecycle;
+import org.springframework.core.annotation.AnnotationUtils;
+import org.springframework.stereotype.Component;

+import javax.inject.Inject;
+import javax.inject.Named;
 import javax.persistence.Table;
+import java.io.IOException;
+import java.util.Collection;
 import java.util.Map;
+import java.util.function.Supplier;

-@Service
-public class OjaiLifecycleListener implements Lifecycle {
+@Component
+public class OjaiLifecycleListener implements SmartLifecycle {

     private static final Logger logger = LoggerFactory.getLogger(OjaiLifecycleListener.class);

+    private final Supplier<Collection<Class<? extends OjaiRepository>>> ojaiRepositorySupplier;
+    private final OjaiTableAdmin tableAdmin;
+    private final Map<String, String> defaultTablePerms;
+    private final Map<String, String> defaultCFPerms;

-    private final ApplicationContext context;
+    private volatile boolean isStarted = false;

-    public OjaiLifecycleListener(ApplicationContext context) {
-
-        this.context = context;
+    @Inject
+    public OjaiLifecycleListener(Supplier<Collection<Class<? extends OjaiRepository>>> ojaiRepositorySupplier, OjaiTableAdmin tableAdmin,
+                                 @Named("mapr.mapr.ojai.table.perms") Map<String, String> defaultTablePerms,
:

Update 3

我想我可能已经掌握了导致这个问题的原因。我不断遇到冲突的原因是我的分支正在跟踪另外两个分支。一个是 master,另一个是 master 的分支,即 current_iteration。看来我的分支正在破译最好的

git remote show origin
... 

  Local branches configured for 'git pull':
    current_iteration     merges with remote current_iteration
    feature/mapr-autoinit merges with remote feature/mapr-autoinit
    master                merges with remote master

这导致合并必须找到一个共同的祖先,这将是 current_iteration 最后一次合并到 master 中(显然已经是前一段时间了)。

这表明 git merge 正在尝试从几个月前的修订版 1b813c6 进行合并。这可以解释为什么要重新应用更改等。

git checkout feature/mapr-autoinit
Switched to branch 'feature/mapr-autoinit'
Your branch is up to date with 'origin/feature/mapr-autoinit'.
macbook-pro:fido-service rkh477$ git show-branch --merge-base
1b813c6c48f1c11d65862331f6667258d536adf9
macbook-pro:fido-service rkh477$ git log 1b813c6c48f1c11d65862331f6667258d536adf9
commit 1b813c6c48f1c11d65862331f6667258d536adf9
Author: Somebody
Date:   Wed Feb 28 16:30:02 2018 -0600

我假设我需要使用 master 来重新设置 current_iteration 的基数来解决这个问题?任何帮助,将不胜感激。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git merge 导致不合理的冲突 的相关文章

  • 将 git 存储库拆分为压缩的公共和初始私有

    我想在 Github 上开源一个项目 有相当多的提交 超过 2k 我会将它们压缩成一个 初始提交 以便从一个干净的代码库开始并隐藏一些历史内容 问题是 是否有可能 保留一个包含所有初始提交的私有存储库 其中会有一些秘密密钥 travis c
  • git | git将旧提交移至另一个分支的过去

    我过去错误地进行了分支 并且在另一个分支的开头留下了一个提交 03431cb HEAD gt bar a2 d332e4d foo b2 9b29ae3 b1 4656a98 a1 6ebca20 master root 我怎样才能移动a1
  • git receive-pack 以 0000 停止

    我对 git 很陌生 目前正在尝试在 opensuse 上使用 gitolite 和 trac 设置环境 我设法使用来自的脚本迁移旧的 svn 存储库http john albin net git git svn migrate http
  • 卡在 git 提交窗口

    我被困在这个窗口了 我做了一个git add a就在之前 然后git commit在 git cmd exe 中 我怎样才能离开这里 我写了我的提交消息并按回车键 但什么也没发生 我担心只是关闭窗口 我在互联网上找不到任何内容 官方网站没有
  • 用于跟踪远程分支的 Git 子模块

    我正在尝试使用 git 子模块将 10 多个存储库聚合到一个结构中 以便于开发 它应该克隆模块并签出分支 相反 模块以分离头模式检出 git clone email protected cdn cgi l email protection
  • 将远程存储库导入为具有完整历史记录的子目录

    我想将远程存储库作为具有完整历史记录的子目录进行合并和解耦 有多种方法和问题可以实现这一点 我的第一次尝试是使用subtree但它似乎没有重写文件的历史记录 所以我无法查看合并存储库的历史记录 接下来的尝试是手动合并它 就像 Seth Ro
  • git pull origin master 返回致命错误:无效的 refspec

    问题是这样的 每当我这样做时 git pull https github com username reponame github io git 接下来是网址 我没有遇到任何问题 但是当我这样做时 git pull origin maste
  • 你遇到过哪些 git 陷阱?

    我遇到的最糟糕的情况是 git 子模块 我在 github 上有一个项目的子模块 该项目无人维护 我想提交补丁 但无法提交 所以我分叉了 现在子模块指向原始库 而我需要它指向 fork 因此 我删除了旧的子模块 并将其替换为同一提交中新项目
  • 如何在 GitHub 中创建嵌套存储库?

    我可以通过创建一个存储库https github com https github com say repo 并有 https github com username repo git 如何创建另一个存储库 例如sub repo 置于rep
  • git Push heroku master 因“HTTP 400curl 22 请求的 URL 返回错误”而失败

    我正在尝试推送仅显示 你好 世界 的 Rails 应用程序 然后我遇到了如下错误 我想知道如何解决这个问题 git推送heroku大师枚举对象 88 完成 计数对象 100 88 88 完成 增量压缩最多使用 4 个线程 压缩对象 100
  • .gitignore 在提交、推送或到达服务器时起作用吗?

    说我有一个 gitignore忽略所有 class files 当 时这些文件是否远离远程源 我在本地提交 添加我的文件 我的吗git寻找一个 gitignore当使用添加 提交时 并根据它所说的内容 从提交中删除内容 我推动我的承诺 做g
  • 如何在不下载文件对象的情况下进行 git 克隆

    是否可以下载所有提交但不能下载文件本身 我想运行 bisect 但从构建服务器下载版本而不是自己编译 当你跑步时git bisect你可以提供 no checkout如果您不想为每次迭代签出新的工作树 请作为参数 同样适用于git clon
  • git 显示更改了 0 次插入(+)、0 次删除(-)的文件

    很多时候 当我运行 git diff shortstat 命令时 它会输出以下内容 17 files changed 0 insertions 0 deletions 即使没有插入或删除 文件怎么可能发生变化 如果项目中某些文件的文件权限已
  • 将 git 设置为始终提示输入凭据

    由于一些专门的硬件 我们有一台与几个开发人员共享的机器 我希望 git 提交和推送始终提示输入凭据 我尝试过在 SO 上找到的一些修复 包括git config global unset credential helper以及编辑配置以包括
  • .gitattributes 没有什么区别,在使用 git difftool 时尝试跳过文件

    我已经阅读了 Git Pro 网站 并且在 StackOverflow 上阅读了多个答案 但遗憾的是我根本无法让 gitattributes 为我工作 每当我使用git difftool 它将尝试显示二进制文件之间的差异 例如图像文件 PN
  • gitk 无法在 macOS 10.14 (Mojave) 上启动

    当我尝试在 macOS Mojave 10 14 4 上运行 gitk 时 出现以下错误 Error in startup script file System Library ScriptingDefinitions CocoaStand
  • 如何摆脱指向origin/master的远程origin/HEAD?

    最近 我在两个不同的复制服务器上更改了我的原始遥控器 现在我在服务器上遇到这种情况 一切正常 git branch a master remotes origin master 在另一台服务器上我有这个 git branch a maste
  • GitHub 恢复或重置? [复制]

    这个问题在这里已经有答案了 正如您在图片中看到的 我正在功能 forum kolo 3 中工作 我决定完成该功能并将其合并到开发中 但没有将更改推送到远程开发 因此它只是本地更改 然后我意识到这是一个坏主意 现在我想删除这个合并 就像它从未
  • 如何欺骗 git-svn 来识别使用 svn 进行的合并?

    我们有一个 SVN 设置 具有稳定的主干和不稳定的开发分支 开发工作 大部分 在分支上完成 然后在部署之前合并到主干 我使用 git svn 作为我的 SVN 客户端 我从unstable到trunk的合并过程如下 git svn fetc
  • 将项目从 github 克隆到 RStudio 时出现错误消息“无法获取本地颁发者证书”

    我试图从 RStudio 克隆 github 的存储库 我已将 git 配置为版本控制可执行文件 我收到此错误消息 SSL 证书问题 无法获取本地颁发者证书 我需要做什么 Thanks 使用以下步骤 访问 github 站点 www git

随机推荐

  • 减少大数据集 DOM 元素的策略

    我有一个大型数据集 想使用 dc js 显示 条目数量远远超出了屏幕上可用的绘图空间 以像素为单位 因此 在 500 像素宽的图表上渲染 20k 点是没有意义的 而且还会降低浏览器的速度 我读了维基百科的性能柚木部分 https githu
  • 在 GitHub 操作中检索已修改文件的列表

    我目前正在使用foo 软件 lighthouse check action https github com foo software lighthouse check action自动完成审核 但自从urls必须进行硬编码 当只想审核提交
  • MySQL 5 星级数据类型?

    对于必须介于 1 和 5 之间的产品评级 ENUM 1 2 3 4 5 是否是一个合理的数据类型 Thanks 是的 这将是一个合适的数据类型 因为它强制执行您的域 但是 如果您要将它们相加 或进行任何其他数学运算 那么数字数据类型可能会更
  • 导入错误:没有名为“spacy.en”的模块

    我正在开发一个使用 Spacy 的代码库 我使用以下命令安装了 spacy sudo pip3 install spacy 进而 sudo python3 m spacy download en 在最后一个命令结束时 我收到一条消息 Lin
  • 在junit中使用@rule检查错误代码

    I found Rule中的注释jUnit为了更好地处理异常 有没有办法检查错误代码 目前我的代码看起来像 没有 Rule Test public void checkNullObject MyClass myClass null try
  • Ruby Net::SFTP 的公钥/私钥身份验证

    我无法找到用于指定 SFTP 身份验证密钥的文档 想要有类似的东西 export SOME PRIVATE KEY cat tmp some certs privatekey pem then somewhere in the code p
  • 无法在模拟器中运行应用程序:运行时遇到错误(域 = LaunchServicesError,代码 = 0)

    在配置配置文件出现问题后 我无法在模拟器中运行我的应用程序 我正在 Xcode 6 beta 4 中进行快速编码 在证书配置文件出现问题之前 这一切都很好 我尝试过清理构建 检查 xCode6 beta4 的命令行是否运行 检查了构建部署
  • jQuery(反)模式:使用字符串操作构建选择器

    我经常发现自己使用字符串操作 拆分 搜索 替换 连接 连接 来构建选择器 是好是坏 这有什么问题吗 有什么替代方案 只是将它们硬编码为单个字符串 但是您可以在网站上使用约定来组织布局 如果您只是在一个地方定义选择器组件 并使用它来构建选择器
  • 使用 monotouch 在 ios 中自定义自动完成选项列表

    我希望能够为在 Monotouch 中创建的 ios 应用程序中的文本输入提供我自己的可用自动更正 自动完成选项列表 单词列表通过网络服务进行更新 完成搜索时 可以在 Ebay 应用程序中看到此类功能的示例 实现这一目标的最佳方法是什么 您
  • 演示与基于类的模型相关的 Javascript 继承优势

    谁能提供一个具体的示例来展示 Javascript 的原型继承 以说明何时使用传统的基于类 经典 模型是有益的 我见过的其他问题 例如经典继承与原型继承 https stackoverflow com questions 1450582 c
  • 如何使用反射来调节多个属性以检查 LINQ .Where 语句中的相等性,具体取决于传递的类?

    我试图概括一个重复检查器函数 该函数根据对象的类型 检查所述类具有的属性 在配置中提供 是否等于另一个列表中的属性 我决定创建一个字典 它将接受键的类型字符串 书籍 作者 商店等 和需要相等的属性数组 字典条目示例 Book Title C
  • 在 IE 和 JSFiddle 中使用 elem.dataset 时出现问题

    在我在 Chrome 上创建的 JSFiddle 中 我发现它无法在 IE 上工作 我使用的是 IE9 任何与此相关的原因 http jsfiddle net ZSB67 http jsfiddle net ZSB67 var backIm
  • UIView 对象的唯一标识符

    我遇到以下问题 当 UIVIew 上发生某种触摸时 我想存储这个 UIView唯一标识符 比如 objectID 这样当我再次重新打开我的应用程序时 我可以检查可见的 UIView 中是否存在具有存储中唯一 ID 的 UIView 我不想将
  • 使用 PlayFramework 多重上传文件

    我尝试使用 Play Framework 一次上传多个文件 但我总是获得每个上传的第一个图像 这是一个具体案例 HTML
  • 动态壁纸和扩展背景

    我正在尝试创建一个动态壁纸 其动画始终位于当前主屏幕页面的中心 而不会丢失扩展背景 我现在正在做的是绘制自定义背景位图 然后在其上绘制一些文本 这是我的并条方法 final SurfaceHolder holder getSurfaceHo
  • merge --squash 和 rebase 有什么区别?

    我试图理解壁球和变基之间的区别 据我了解 在进行变基时会执行挤压 Merge commits retains all of the commits in your branch and interleaves them with commi
  • 从标准输入读取

    使用读取用户输入的可能方法有哪些read Unix 中的系统调用 我们如何使用从 stdin 逐字节读取read 你可以这样做来读取 10 个字节 char buffer 10 read STDIN FILENO buffer 10 记住r
  • 如何让导航栏透明

    如何在 Android 4 4 X 及更高版本上使导航栏透明 我在文档中进行了搜索 但没有找到任何相关内容 我已从更改日志中获取了此内容安卓奇巧 4 4 http developer android com about versions a
  • 安装 django-admin-charts 后出现关于 smart_text 的错误

    我想在管理面板中显示图表 我安装了django admin charts包裹 其中说将这些添加到settings py INSTALLED APPS admin tools stats this must be BEFORE admin t
  • git merge 导致不合理的冲突

    我基本上在从 current iteration 合并到我的分支的几乎所有文件上都遇到了冲突 这真是令人抓狂 让许多人惊讶不已 摸不着头脑 我目前正在使用 git 版本的 mac 工作2 18 0 我的同行都在Windows git版本上工