【问题标题】:How to pull a git repo from shared server and push it back?如何从共享服务器中提取 git repo 并将其推回?
【发布时间】:2016-09-21 14:02:01
【问题描述】:

我正在学习Git 我有一个托管在godaddy 上的网站。使用“Git Bash”工具,我使用git init 将其初始化为一个git repo。

这就是我所做的(详细)

使用 Git Bash,我如下所示通过 SSH 连接到远程 Godaddy 服务器

SSH my-user-name@177.62.28.96,然后运行以下 git 命令将现有文件初始化为 git repo。 git init, git add * git commit...

现在这被命名为回购的masterbranch。

这就是我想做的事

我想将这个 git repo 拉到本地文件夹,进行更改,然后 git push 将其返回。

这个问题再次打开(原因如下) 这是因为@dendress 的回答表明应该将远程仓库初始化为bare这个答案的问题是虽然推送成功了,但是改动并没有反映在远程文件上。

解决这个问题就是我所做的 文档建议在bare repo 中没有工作树。所以变化无法反映。所以我做的是

  1. 我删除了.git/ 文件夹,
  2. git init重新初始化目录,
  3. 使用git clone my-user-name@177.62.28.96将其克隆到我的本地计算机并进行了更改
  4. 在服务器上,我通过git config --bool core.config true 将repo 更改为bare
  5. 在我的本地机器上,我运行了git push origin master
  6. 这是它的输出

Pareek@ram MINGW64 /c/wamp/www/git/sarv/sarv (master) $ git push origin master pareekbhagu@177.62.28.96's password: Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (5/5), done. Writing objects: 100% (5/5), 442 bytes | 0 bytes/s, done. Total 5 (delta 4), reused 0 (delta 0) To pareekbhagu@166.62.28.96: 8d4041d..7906308 master -> master

我认为这意味着推送成功,但是**

如何使更改反映在我的远程仓库中

**

【问题讨论】:

  • 对不起,我对 git 很陌生,你的意思是运行 git remote add master http://my-domain.com 吗?
  • 你不应该这样做。您已将整个主目录转变为 Git 存储库。您应该选择一个特定的子文件夹并在其中运行git init/git add/git commands

标签: git version-control


【解决方案1】:

您必须先将存储库克隆到本地计算机。这可以通过git clone 命令来完成,例如

git clone my-user-name@177.62.28.96:path/to/git/repo

之后,您可以进行编辑,然后将它们推送回服务器

git push origin

注意:

  • 您应该将服务器上的存储库初始化为一个裸存储库 (git init --bare),因为您想要推送到它。
  • 如果您想在另一个分支上进行更改,而不是在克隆存储库后主运行 git checkout -u branch-name

【讨论】:

  • 它说....克隆到'177.62.28.96'...这是否意味着它正在将本地文件克隆到服务器...我应该继续吗?
  • 您确定存储库的路径正确吗?对于我的示例,它应该打印:Cloning into 'repo',因为在我的示例中 repo 是包含 git 存储库的文件夹。请检查您是否指定了正确的 git 存储库路径或将您运行的命令粘贴到此处。
  • 我有一个testgit 文件夹。 177.62.28.96:/testgit.. 在这个文件夹中我运行了命令git init。现在它在这个(177.62.28.96:/testgit/.git)中创建了一个文件夹.git。但我收到的消息是fatal: '/testgit' does not appear to be a git repository fatal: Could not read from remote repository.
  • 请尝试将服务器上的存储库初始化为一个裸存储库 (git init --bare),然后像以前一样尝试其余的(添加、提交、克隆)。如果你想推送到一个存储库,你应该总是把它变成一个裸露的。
  • 现在可以使用了。谢谢。一个小编辑:而不是git clone my-user-name@177.62.28.96:/path/to/git/repo,请将其编辑为git clone my-user-name@177.62.28.96:path/to/git/repo..你给出的语法是'scp-style-syntax',它不起作用......stackoverflow.com/questions/7318918/…
【解决方案2】:

您还应该看看这个名为 Pro Git 的awesome book——它是免费的,免费是不是很好?

【讨论】:

  • 检查不够,阅读时间太长。人们无法阅读地球上的所有内容,这就是 StackOverflow 开展业务的原因。 :) 如果可以,请回答。第 2 点 - 我知道 git 的最低限度的基础知识。所以你可以继续回答我的问题。我向你保证,无论git gibberish 你要说什么我都能听懂
  • 这本书的索引很好——你可以零碎地阅读它;)所以看看吧。你不会通过每个人都告诉你一切来学习,你可以通过阅读文档来学习——Git 有大量的资源——谷歌是你的朋友。
猜你喜欢
  • 2019-01-21
  • 2014-09-30
  • 2013-06-04
  • 2012-01-20
  • 2014-02-02
  • 2013-03-10
  • 1970-01-01
  • 2017-02-15
  • 2014-12-21
相关资源
最近更新 更多