【问题标题】:Ahead by one commit领先一步
【发布时间】:2019-09-04 20:05:06
【问题描述】:

所以我是 Git 新手,还没有使用 GitHub(尽管我确实注册并设置了 GitHub)

今天我做错了,我想:

我创建了一个名为“develop”的新分支,然后移至该分支。接下来,我创建了一个新的 .py 文件并编写了一些代码。然后我提交了这个新文件的更改。

接下来,我想练习合并,所以我搬到了我的'master'分支,并尝试了git merge develop,但被告知我的workspace.xml文件中存在冲突。我相信,这个文件只是跟踪我的 IDE 工作区,所以每次我重新打开时它都会从我离开的地方开始。

我的问题:

1.) 我的这个工作流程有问题吗?我应该在主分支上创建新的 .py 文件吗?我可以做些什么不同的事情?

2.) 我该如何解决这个冲突? Git 说它不会让我合并,因为旧的 workspace.xml 文件将被覆盖。

3.) 我如何摆脱“您的分支在 'origin/master' 之前 1 次提交”?这可能是因为我添加了一个新文件并在“开发”上提交了它?

【问题讨论】:

  • 看来您所做的一切都是正确的,只是您似乎提交了您可能不应该拥有的文件,例如那个 workspace.xml 文件。本地缓存文件在存储库中并不是很有用,并且会导致频繁且持续的合并冲突。最好忽略它们,查看 .gitignore。由于 git 已经在跟踪这些文件,因此您需要进行一些小的清理工作,请务必在堆栈溢出中搜索类似问题。
  • 您的工作流程很好。 git 有 gitignore 这个概念,它可以让你忽略 git 跟踪的文件。 git-scm.com/docs/git-merge#_how_to_resolve_conflicts
  • @matt 您链接的问题是“由于我的项目中没有显示'workspace.xml',我该如何提交它?”,这根本不是我问的。您应该阅读我提出的问题,然后阅读您链接的问题。然后,您应该删除您的评论。
  • 一本好书:git-scm.com/docs 很短,它会回答你所有的问题。

标签: git github pycharm


【解决方案1】:

您可能会使用git add -A 的变体来添加您的所有文件,其中包括该xml 文件。 (替代错误是add . - 点表示文件夹中的所有文件)。

所以您现在拥有拥有不同 xml 文件的 master 和 development。因此,当您合并时,它们会发生冲突。你希望错误“消失”。

首先,在 master 上,使用您的查看器(例如 gitk 或 git gui)确认您的位置(记下提交 sha1,以防您需要取回它)。我认为您还没有完成合并提交。

然后你应该'git reset --hard'(从互联网上总是一个坏主意;-)来清理你当前分支的当前状态。这将使文件系统完全具有上次完成(当前)提交(即 sha1)中的内容。这应该可以消除冲突。

如果你有 git-gui(通常是查看发生了什么的最简单方法),然后使用 'ammend commit' 从最后一次提交中删除该 xml 文件(它现在被'重写' 作为新的 sha1 值)。

更改到“开发”分支并重复修改(或阅读用于修改命令行解释器 (cli) 方式的提交的手册)。

您现在应该有一个 master 和 develop 分支,它们没有冲突的 xml 文件,您可以尝试合并。

-

Aside 1:正如其他人评论的那样,查看 .gitignore 文件选项以避免将来出现这些错误。 github 上有很多示例 gitignore 文件,可供使用。

除了 2:您说您还没有使用 Github(或其他服务器),因此您不会对“远程”有任何问题(即存储在其他地方的存储库的副本)。但如果你有,那么你将需要“强制”推送你的更改,因为你已经“重写”了历史。这对于个人工作分支来说是完全正常且可以接受的,但对于共享分支应该避免。有一个手册页部分介绍了如何为此类事情道歉 ;-)

【讨论】:

  • 谢谢,我绝对把 .igitignore cmets 放在心上,并添加了 xml 文件。此外,我能够删除包含自动创建的文件的整个 .idea/ 文件夹。我使用了 'git rm -r --cached' 这似乎可以解决问题。有什么理由不这样做?
  • @rocksNwaves 命令的选择取决于您要在历史上的哪个位置应用修复程序...两者都不是“更好”,但一个最适合您..
猜你喜欢
  • 2019-07-16
  • 2015-05-19
  • 1970-01-01
  • 2016-10-06
  • 2013-01-15
  • 2018-03-22
  • 1970-01-01
  • 2013-09-12
  • 1970-01-01
相关资源
最近更新 更多