所有
我被要求使用ssh将托管在云服务器上的存储库克隆到我们的本地服务器上。我使用" git clone ssh://服务器路径" ..一旦我这样做了。 ,我看到创建的.git文件夹和所有文件..
现在如果在云端服务器上更改了代码,我将被要求将其运行到本地计算机上
git fetch git tag (标签号是我在列表中看到的最大标签号 - 可能每次提交都会有新的标签号。我只是假设这样) git checkout
我的问题是,当我运行 git fetch 时,它将更新我的远程存储库的本地副本(但不要与我当前的本地分支合并)..这是正确的吗?
当我运行 git标签时 - 它会给我一个标签列表..来自哪里提取此信息?这是否与远程云服务器联系以获取标签?或者它会在本地获取它,因为我在第一步中进行了git fetch?
git checkout - 我真的不明白这一步它做了什么?..它是否使用对此特定标签号进行的更改来更新本地文件?如果是,则表示它复制了修改过的文件从远程存储库的本地副本到我当前的工作目录?
请澄清..一直困扰着我。
山
答案 0 :(得分:2)
是的,使用git pull / fetch将从rempte服务器复制,大多数其他命令如tag / branch / checkout都是本地的。结帐http://ndpsoftware.com/git-cheatsheet.html查看完整列表。
Git已分发,因此您可以从存储在本地的远程服务器获取分支和历史记录的副本。
checkout将为您提供文件版本或整个分支/标记,请参阅
git help checkout
了解更多。
答案 1 :(得分:0)
您投入了解git如何运作的时间将被多次偿还。 Which equals operator (== vs ===) should be used in JavaScript comparisons? lot甚至tutorials免费提供。如果你是来自颠覆或类似的,这个' books'章节可能会有所帮助(即使它是一个善变教程的一部分......) 你应该检查这个问题:subversion re-education
您的本地存储库包含实际文件和.git文件夹,其中包含有关所有更改及其相互关系的信息。
当您修改了本地文件,使用git add
暂存,提交时使用git commit
,更改的部分将存储为一组差异。这些差异得到一个独特的I' d, ref ,并与之前的更改ref一起存储。
fetch 不会修改您的本地文件,但会删除有关远程可用文件(更改,分支,标记)的信息。
标记是一个命名参考。
结帐会将您的本地电影置于特定状态'。因此,如果您在结帐时指定标记,则所有文件将等于创建标记时的标记。