【问题标题】:Is there a REALLY simple way to use git - like one single command?是否有一种非常简单的方式来使用 git - 就像一个命令一样?
【发布时间】:2016-08-29 12:26:16
【问题描述】:

我的意思是:

  • 我们有一个存储最新版本的服务器,
  • 在我的一天中,有时我想提交我的更改,
  • 完成所有工作后,我想与他人保持同步,
  • 如果没有出现任何问题,我希望无需额外步骤即可重新开始工作。

在梦境中,应该只用一个命令完成,比如“git snap”,它应该管理所有步骤;当然,当出现问题(无法自动解决的冲突)时,它会给我一条错误消息,我会开始艰难地做这件事。 (是的,我可以做到,我每天都在使用 git,只是想让它变得轻松。)

那么,实现这一目标的最简单方法是什么?一批,也许? stash + pull + stashpop + commit 之类的一系列git命令,还是commit + pull + push?在没有严重冲突发生的乐观情况下,是否有一种自动的方法来做到这一点?

我现在将 git 与 3 个不同的客户端(SourceTree、GitExtensions、TortoiseGIT)一起使用,但都没有让我的生活变得如此简单。我不想一直手动存储,我对详细的消息不感兴趣,只有一个命令,它要么全部完成,要么由于某种原因失败。

有办法吗?

【问题讨论】:

  • 我没有对你投反对票,但你的问题有点像问为什么驾驶变速杆如此困难?好吧,因为它可以让您在驾驶时始终对发动机进行精细控制。如果你不喜欢它,买一个自动的。
  • @Tim 我想他是在要求计算机在你的类比中调节自动。
  • @Tim:嗯,这不是答案。我不反对它,因为你没有 - 但我的问题是关于简化复杂过程的实用默认方法。告诉我它很灵活是不好的 - 我知道,谢谢。有些系统在复杂性和灵活性上击败了 git,但仍然可以为最可能的情况提供一种简单的方法。这个问题是有道理的。如果您不同意,请忽略它。
  • 查看git-up 或使用批处理脚本。 Git 的界面其实是很简单的 IMO,比 Perforce 之类的容易多了。
  • Git-up 看起来很有趣,但它是为 Mac 编译的。找不到 Windows 版本。

标签: git versioning


【解决方案1】:

我能想到的唯一选择是一个 bash 函数或脚本来连续运行命令。我的工作流程将如下所示(因为您不关心提交消息):

git commit -a --allow-empty-message -m ''
git pull --rebase
git push

对我来说,这可能会占用我工作流程的 80% (SWAG)。 git pull --rebase 是唯一可能失败的步骤。如果有任何冲突,它将失败,但让您可以更正,然后使用git rebase --continue 继续变基。然后,您可以从这里git push 完成工作流程。

你也可以看看 GitHub 自己的 Git 客户端,它非常简单且集成良好。但是,它不会为您提供您正在搜索的“一键式操作”。 https://desktop.github.com/

【讨论】:

  • 这是一个很好的答案。如果没有弹出“一键式”替代方案,我将尝试实现类似的东西。我没有立即将其标记为已接受的唯一原因是我想给其他人一些时间。也许有人已经写了 Magic Batch。
【解决方案2】:

这是一个命令:

git commit -a -m "Commit" && git pull --rebase && git push origin master

您还可以解决冲突。这会变得更难。

请注意,您没有按照应有的方式使用 git。

不应仅将 Git 用于共享代码或备份您的工作。

【讨论】:

  • 谢谢 - 是的,我知道,正如我在问题中所写,我正在积极使用 Git。我知道它擅长什么。特别是,我提到了提交+拉+推,这也是我的正常工作流程,直到我在 GitExtensions 中发现了自动存储选项。我不想滥用 git - 我想让简单的案例自动化,只关心异常。
【解决方案3】:

非常好的问题!我的生活很轻松,因为我通过 PHPStorm 使用 git。我建议你尝试一下。它会自动处理这些,并且还具有代码完成功能:P

【讨论】:

    【解决方案4】:

    使用 Makefile 来做这件事是个不错的方法。

    【讨论】:

      【解决方案5】:

      在尝试不同客户端几个月后,我发现 GitExtensions 是最能轻松同步的工具。当您执行拉取操作时,它有一个“自动存储”选项 - 自动保存所有更改,然后从服务器获取新内容,然后将您自己的更改合并回它们(存储弹出),如果您愿意,所有这一切都无需触摸它.它还为您提供了一种手动解决冲突的方法(尽管您需要一个比较/合并工具,例如 TortoiseMerge)。

      TLDR:GitExt 似乎是我祈祷的答案。

      【讨论】:

        猜你喜欢
        • 2023-04-08
        • 2012-07-02
        • 1970-01-01
        • 2012-12-10
        • 2017-01-07
        • 2016-08-17
        • 1970-01-01
        • 1970-01-01
        • 2018-01-10
        相关资源
        最近更新 更多