git push,源代码 stash 在哪里?

标签 git

我试图在同一台机器上为我的 ror 应用程序设置 git 服务器和部署服务器。我使用以下命令将项目从本地计算机推送到 git 服务器/部署服务器:

git remote add origin path_to_git_server
git push origin master

然后,在 git 服务器上,我在 ~/git/log.git/ref/heads 下找到了 'master' 文件,但我找不到所有的源代码。我需要指向源文件夹以便它在 apache web 服务器上工作。我在这里做错了什么?谢谢。

最佳答案

您可能创建了一个 git init --bare 存储库 - 这将不起作用,因为它只是 git 存储库而不是工作阶段。我打算将其设置为三台机器布局 - 但它可以在两台甚至一台机器上运行。

机器 A(您的开发机器)

机器 B(您的远程存储库)

机器 C(您的生产环境)

(但如果您在一台机器上同时拥有生产、开发和“远程”存储库,那也很好)

当您准备好推送到机器 B(Repo)时,您提交所有工作,恰到好处地暂存,然后执行 git push(在执行远程添加等之后)此更新Bare 远程存储库,其中包含自上次推送以来您机器上的所有更改(将其视为将机器 a 上的 .git 文件夹的内容与远程存储库同步)

因为 Git 只关心文件内容的变化(实际上并不关心文件或文件夹本身 - 相信我 Git 不关心你的文件 - 只关心内容)它不会在机器 B 上存储文件就像你在你的机器上看到的“工作阶段”Git 将这些文件放在工作阶段供你使用和开发 - 但 Git 不关心它们 - 同样它只关心"file"内容的变化"自上次提交以来。

要部署您的代码,您需要转到机器 C 并克隆机器 B 上的存储库 - 这会将“.git”文件夹同步到该机器,然后根据它的所有内容构建后续文件/文件夹跟踪。克隆此存储库后,您可以通过 git pull

获取 future 的更新

这就是它的本质。如果您在一台计算机上拥有所有内容,您可以执行以下操作:

~/projects/git_project (Your devel area)
/home/repo/git_project.git ("Remote" repo)
/opt/rails/git_project ("Production" machine)

在一台机器上拥有远程仓库是多余的,因为从技术上讲,您可以从

~/projects/git_project

/opt/rails/git_project

但只是保持示例一致

关于git push,源代码 stash 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3137096/

相关文章:

git - 获取 git 用户名以链接到个人资料

git - stash 然后 pop 在 git 中执行自动提交

git - "fatal: You are on a branch yet to be born"在这种情况下意味着什么

git - 从当前工作树创建分支并重置为 HEAD

git - 保护git存储库中的文件

windows - 什么是遗留存储?

Git - 修改后的提交是否持续存在?

git - Git可以将一个裸仓库克隆到另一个裸仓库吗

svn - RW 使用 svn (git-svnserver) 访问 git 存储库?

git - 删除git分支会失去审核