如何使用 git status、reset、revert 和 overleaf git 项目?

如何使用 git status、reset、revert 和 overleaf git 项目?

有没有办法在 overleaf 项目中使用 git 命令?目前,我看到了从 github 推送和拉取的选项,但仅此而已。我有一些命令的解决方法(如下所列),但我想知道是否有更好的方法来代替它?

  1. git status:目前无法使用。
  2. git reset:删除overleaf项目并从github重新导入项目。
  3. git revert:在本地电脑上从 github 克隆项目,执行还原,推送更改。然后将这些更改拉入 overleaf。

答案1

我在这里使用工作流程:从现有 Git 存储库创建 Overleaf 项目

在那里列出的步骤中,您可以用来git revert覆盖最初在空白 Overleaf 项目中创建的文件,所以我认为该命令确实有效,至少在第一系列步骤中是这样。

按照本教程,我的最终设置如下:


❯ git remote -v
origin  https://username@git_hostname/~username/original_latex_project.git (fetch)
origin  https://username@git_hostname/~username/original_latex_project.git (push)
overleaf    https://git.overleaf.com/project_hash (fetch)
overleaf    https://git.overleaf.com/project_hash (push)

我的工作流程是

  1. 在 Overleaf 上编辑我的项目文件,或者使用任何编辑器从仓库的本地副本编辑,或者从我的 git 仓库主机的 Web UI 编辑
  2. 在编辑位置提交更改(我相信当请求到达 Git-Bridge 时,overleaf 会自动完成此操作,只要您使用“ctrl/cmd-s”或编译保存了最近的编辑)
  3. 执行以下操作之一:
  • pull overleaf如果push origin编辑是使用 Overleaf 在“远程”进行的(如果是在 git web UI 上进行的,则交换)或者
  • push origin如果push overleaf使用 emacs/vim/vscode 等在本地存储库中进行编辑。

这确实涵盖了我需要做的所有事情 - 感谢 Overleaf 团队的出色整合。

但是,我要指出的是,这可能与您的问题 @vipin8169 有关,Git-Bridge 维护的 Overleaf 存储库将拒绝git push -f。这意味着重写master/main分支上历史记录的操作(例如git rebase)将无法推送。

话虽如此,我并不介意强制遵守这样一种好的做法,而且说实话,编辑历史是一个免费的空间,所以如果你真的需要清理历史记录以进行公开发布或其他原因,你可以简单地清理本地/其他 github 管理器副本你的项目,删除旧的 Overleaf 项目(或者只是创建一个新的!)然后按照我的第一个链接中完全相同的起始步骤,以获得重新连接到 Overleaf 的干净的历史记录。

答案2

我已经将 Overleaf 与 Dropbox 关联。现在我可以通过本地 Dropbox 集成以传统方式使用 git。如果您更改分支,则必须等待 Dropbox 同步,然后您也会在 Overleaf 中看到更改。

相关内容