【问题标题】:Novice question about Git versioning for single user/multiple computer关于单用户/多台计算机的 Git 版本控制的新手问题
【发布时间】:2021-09-08 05:52:42
【问题描述】:

到目前为止,id 使用每个版本的子文件夹进行版本控制,并使用 syncthing 在计算机之间同步。 它有效,但很容易出错编辑错误的版本和类似的。所以我想切换到一些版本控制软件。 Git 似乎有能力做到这一点,甚至更多。但似乎 Git 提供了很多,我看不到正确的方法。

例如,我确实创建了项目文件夹并使用我不想在 Git 中的文件列表写入 .gitignore 文件(主要是编译结果) 之后我确实写了一些资料,然后发出:

git add .
git commit -a -m "the commit remark"

我假设我需要每隔一小时发出一次命令。所以如果我犯了一些愚蠢的错误,我可以恢复。 现在我有一个问题,当我得到一些稳定的代码时,我想将其命名为版本 v1.0。如何正确地做到这一点? 我需要制作分支还是仅仅制作标签就足够了? 当我拥有 v1.0 时,如何继续为未来的 v1.1 工作? 我应该在 master 上工作还是最好创建分支 v1.1 并在这里工作。 如果我在 v1.0 上做一些小改动,那也会出现在 v1.1 上吗?

现在我有 3 台计算机(工作、家庭、笔记本电脑),我使用 syncthing 使所有计算机保持同步。通常工作计算机是永久开启的,另外两台是按需的。但只是我使用它们。 我做了小测试,似乎即使 Git repo 也可以与 syncthing 同步。但我想知道 Git 是否有更好的方法来同步我的所有计算机。但我不喜欢将我的代码放在云端。 如何管理?

感谢您的帮助

【问题讨论】:

  • 一种方法可能是git-flow,但有些人倾向于说,它太复杂了。你必须找到你的方式,最后总是你必须以对你最有意义的方式使用某种标签/分支混合物。

标签: git versioning


【解决方案1】:

创建版本

现在我有一个问题,当我得到一些稳定的代码时,我想将其命名为版本 v1.0。如何正确地做到这一点?

Git 为此提供了tags。要创建标签,请使用git tag <tag name>

标签基本上是特定提交的名称。您可以使用git checkout <tag name> 签出(获取代码)标签。要再次获取当前版本的代码,请使用git checkout master

同步

我做了小测试,似乎即使 git repo 也可以与 syncthing 同步。但我想知道 GIT 可能有更好的方法来同步我的所有计算机。但我不喜欢将我的代码放在云端。如何管理?

git 允许您push(上传)您的提交到.git 服务器,然后pull(下载)提交。

可以通过初始化裸存储库来创建服务器(使用 24/7 运行的计算机)为了做到这一点,导航到您的服务器并运行

git init --bare

这将创建一个没有签出任何文件的新存储库(只是一个服务器存储库)。

为了对 git 服务器进行推送/拉取,您需要配置一个 remote

最简单的方法是使用 betwork 共享。访问共享后,您可以像这样配置远程:

git remote add origin /srv/git/project.git

或在窗户上

git add origin Z:\your/git/repository.git

创建遥控器后,您可以使用git push -u origin mastergit pull origin 进行推/拉操作。

如果您不想使用网络共享,可以使用 SSH 或智能 HTTP 服务器。

更多信息可以在this chapter of Pro Git找到。

其他提示

我不会每隔一小时或类似的时间自动提交和推送(对于软件项目),而是每次您更改某些内容时。

您可能还想在做任何不确定的事情之前创建一个备份。在大多数情况下,Git 允许您恢复丢失的数据(使用 reflogcheckout),但这有点复杂。

【讨论】:

  • 因此,如果我制作标签 v1.0,然后制作 v1.1 以及几天后的 v1.2,那么我可以恢复到 v1.0。但是如果我想更改 v1.0(而不是 v1.1 和 v1.2)我需要创建分支吗?
  • 如果您想更改版本,只需使用branch 而不是tag(创建分支而不是标签)。要更改分支,请使用git checkout <branch name>
  • 所以如果我为每个版本制作标签,那么它们都是*master。但它们就像只读的。如果我想改变一些东西,我需要创建分支,这将使 *master 完好无损。
  • 如果你以后想改变标签,从一开始就使用分支而不是标签。只能通过删除和重新创建标签来更改标签。
  • git 允许您将提交推送(上传)到 git 服务器并稍后拉取(下载)提交。可以通过初始化裸存储库来创建服务器(使用 24/7 运行的计算机)。为了做到这一点,导航到您的服务器并运行。该服务器是否需要存储所有数据或其唯一网关。-
猜你喜欢
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2021-10-10
  • 2021-12-22
  • 2014-09-09
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
相关资源
最近更新 更多