Git是否将我的本地存储库视为唯一

时间:2014-11-11 21:00:15

标签: git

非常基本的问题,但是我有一个使用Git版本控制的web项目,涉及3个git repos。

  1. 我的本地回购
  2. repo托管在Bitbucket
  3. 生产服务器上的回购
  4. 我打算尝试对我当地的git repo进行一些有风险的更改 - 这可能最终会破坏或破坏git在本地的功能。
    我的问题是,如果我弄乱了我的本地git repo,是否可以简单地删除包含git repo和工作文件的整个项目文件夹,并简单地从其中一个好的回购中克隆? 具体来说,我想知道git系统是否以某种方式将我的本地仓库识别为唯一的,无论是通过用户名,回购名称还是机器等,这样如果我要从另一台机器克隆并开始推送,我可能会遇到如下错误:

    • 错误:尝试在machine x
    • 上使用属于“machine y的git repo”

    我怀疑git可能不关心,只是接受来自新本地仓库的推送,但如果git抱怨,是否可以重新配置新克隆的本地仓库或执行其他一些此类解决方法?

3 个答案:

答案 0 :(得分:4)

  

我的问题是,如果我弄乱了我的本地git repo,是否可以简单地删除包含git repo和工作文件的整个项目文件夹,并简单地从其他一个好的回购中克隆?

是。只要你不推动,其他存储库就不会受到影响。

  

具体来说,我想知道git系统是否以某种方式将我的本地仓库识别为唯一。

克隆存储库的目录是使其唯一的原因。

  

我怀疑git可能不关心,只是接受来自新本地仓库的推送

不确定。它当然会检查推送是否会导致任何冲突。

  

但是如果git抱怨,是否可以重新配置新克隆的本地存储库或执行其他一些此类解决方法?

您可以使用git remote命令更新或更改推送网址,但如果您不移动遥控器,则您不太可能需要这样做。

答案 1 :(得分:1)

我不确定这个问题是否非常明确,但如果我理解正确,你就是不想打破Git。 Git是一个可以做很棒事情的愚蠢软件。只要用户不做“愚蠢”的事情,那么他们就是金色的:)你可以随心所欲地玩当地游戏而不用担心破坏。当你摆弄pullmergepush时,你可能会遇到错误。

如果你还没有做过,你可以做的一件事就是设置你的本地存储库以拥有所有的遥控器,然后你可以单独推/拉到它们中的每一个。观察。

$ git init 
$ git remote add dev http://bitbucket.org/repo
$ git remote add prod https://prod/repo

现在您可以在本地进行更改,您不必担心git会“损坏”。

完成开发后,将更改推送到所需的遥控器。

$ git push dev branch

答案 2 :(得分:0)

简短的回答是肯定的,你可以在git上拥有不同版本的项目,因为它可以在不同的点保存程序的状态。关于git的许多精彩内容之一是它是一个分布式版本控制系统,如果使用得当,它将帮助您保存代码的版本,您可以轻松地撤消,甚至在您更好地理解它时重做。它具有很高的学习曲线,但您可以通过一些简单的命令开始使用它。

我建议你做一个git教程来熟悉它:https://try.github.io/levels/1/challenges/1

  

具体来说,我想知道git系统是否以某种方式确定了我的   本地仓库是唯一的,通过用户名,回购名称或机器等,   如果我要从另一台机器克隆并开始推动我   可能会出现如下错误:

error: trying to use git repo "belonging to" machine x on machine y

是的,如果您从github克隆了someones项目,那么您的项目副本就是您计算机的本地副本。然后,您可以设置自己的存储库,然后“推送”您的更改以保存它们以用于您自己的目的。