当你是 git 中的原始仓库时,你如何进行本地拉取?

2024-01-30

我有一台服务器,我在其中设置了 Git 存储库。从我的客户那里,我可以执行

git拉原点

and

git 推送原点

我的更改已正确推送/拉取到远程 Git 服务器。我还需要能够在服务器本身上签出项目。我没有使用初始化--裸露当我设置它时,因为我明确希望在服务器上也有一个工作副本。

当我跑步时git pull,但是,我收到一条消息fatal:今天你想从哪里获取?。如何查看服务器上本地工作副本的最新更改?


修复工作副本以匹配推送的最新更改

git checkout HEAD

可能就是您正在寻找的。

来自客户端的推送会更改索引而不是工作文件,因此您的工作文件不会更改,而 git 记录会继续进行。为了只擦除工作文件以支持最新版本,您可以签出推送到服务器的最新版本。

...Edit:

使用两个非裸存储库

我刚刚意识到我为您提供了理解问题的信息(索引隐式更改,但工作文件仅显式更改),但不一定是解决问题的最佳方法。这是我过去所做的事情,如果您不想涉及中央裸存储库,我建议您这样做:

在服务器上:

git branch staging
git checkout staging

在客户端机器上:

Hack away at some changes in master, then push to the server.

在服务器上:git rebase master(显式更新您的暂存分支以匹配更新的索引。)

最后,如果您想在服务器上进行更改(错误修复,您有什么),您还需要将这些更改同步到主服务器,您可以通过以下方式完成:

在服务器上:

Commit changes made on the staging branch.
git rebase master
git checkout master
git rebase staging
git checkout staging

这样,master 中的每个提交都将处于 staging 状态,并且 staging 分支中所做的每个提交都将是 master 中的最新提交。

即使使用非裸中央存储库,这种工作流程也应该适合您。本质上,您将服务器的主分支保留为空,并将临时分支作为服务器的工作副本。

使用中央裸仓库更干净

一般来说,尽管网络中的两个点看起来最简单,但拥有一个“集中式”裸存储库通常更简单,它允许您始终推送和拉取到该位置,而无需真正考虑它。我还推荐您可以从中获得的网络代码可视化的好处github.com http://github.com出于这个原因(对于开源的东西是免费的,我现在所做的一切都使用它)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当你是 git 中的原始仓库时,你如何进行本地拉取? 的相关文章

  • Git:列出应该被忽略但没有被忽略的文件

    Note 这不是关于修复git rm r cached git add 我实际上希望能够只列出文件 Why 有时当我编辑我的 gitignore并忘记上面的命令 我最终得到的文件仍然在存储库中 但应该被忽略 What 我想要完成的是编写一个
  • 将构建文件夹推送到不同存储库的 Github 操作

    我有 2 个存储库 存储库 A 包含源代码 存储库 B 将构建文件夹发布到网络 我为此目的采取了行动 但收到错误 git clone single branch branch main github com blockcodelabs B
  • git,Heroku:预接收挂钩被拒绝

    我正在设置 git 存储库并尝试将其链接到 Heroku 当我运行命令时 git push heroku master 我收到 Counting objects 7 done Delta compression using up to 2
  • 解决方案具有位于解决方案文件夹外部的项目

    我尝试通过选择将我的解决方案添加到本地存储库File 添加到源代码管理 但我收到以下消息 源代码控制 Git当前解决方案包含位于解决方案文件夹外部的项目 这些项目不会在 Git 存储库中进行源代码控制 要将所有项目添加到单个 Git 存储库
  • 创建一个包含另一个 git 存储库的 git 存储库

    我创建了一个裸 git 存储库 我们称之为存储库 1 并克隆了它 在克隆 repo 2 中 我创建了几个文件夹 其中我决定创建一个 git repo repo 3 当我提交到 repo 2 时 一切都按预期运行 除了 repo 3 被忽略
  • 我在使用“heroku open”命令时遇到错误

    我在 heroku 上创建了一个 python 应用程序 推动后我给了heroku open命令 我在浏览器上遇到这样的错误 Application Error An error occurred in the application an
  • 在 Windows 上,无法创建目录“/home/<用户名>/.ssh”

    要使用 gitbash 在 Windows 上配置 git 如所解释的here https help github com articles generating a new ssh key and adding it to the ssh
  • GIT Pull 删除了我的提交

    在 git pull 之后 我已经完成了 git Reset 以在合并之前撤消与提交 ID 的合并 不知何故 我的整个提交都消失了 而且我也无法在历史记录中看到该提交 但我有提交 id 在 git show 命令上我可以看到我的更改 我如何
  • 如何配置“git diff”以使用 emacs diff [重复]

    这个问题在这里已经有答案了 是否可以配置 git diff 以使用 emacs diff 如果是的话 你能告诉我怎么做吗 谢谢 看这个问题 如何使用视觉差异程序查看 git diff 输出 https stackoverflow com q
  • 可以使用 git 项目并在 VS2013 中查看 TFS 工作项吗?

    所以我升级到了VS2013 希望能顺利进行所有开发 不过有一件事确实让我很恼火 我的团队使用 TFS 而我更喜欢 git 因此我使用 git tfs 来桥接两者以进行源代码控制 我们使用 TFS 工作项来跟踪错误和故事等 如果重要的话 我也
  • 如何恢复已删除的文件[重复]

    这个问题在这里已经有答案了 可能的重复 在 Git 存储库中恢复已删除的文件 https stackoverflow com questions 953481 restore a deleted file in a git repo 如何恢
  • 如果检测到更改中的特定短语,如何阻止 git commit?

    我注意到开发人员倾向于做的一些模式 例如使用以下代码提交 javascript 测试fdescribe or fit留在其中 这意味着只有一个测试 套件将运行 通常是在审查阶段发现的 但最好尽早发现这些小事情 想知道是否有一种方法可以配置
  • 当我所做的只是压缩提交时,为什么 git-rebase 会给我带来合并冲突?

    我们有一个包含 400 多个提交的 Git 存储库 其中前几十个提交需要大量的反复试验 我们希望通过将许多提交压缩为单个提交来清理这些提交 当然 git rebase 似乎是最佳选择 我的问题是它最终会产生合并冲突 而且这些冲突并不容易解决
  • 分支和文件夹的 gitolite 权限

    在 gitolite 我想要 developers能够推送到除以下之外的任何分支master I want user1能够推送到任何分支 包括master 除了不是某个目录master 我该怎么做呢 这应该解决以下两个问题 repo are
  • Git fetch 在 for-each-ref 中不显示远程分支

    我有一个远程分支feature test2 我想把它拿过来 我跑 git fetch origin feature test2 我得到 From
  • 如何找出在哪个提交中添加了特定代码?

    我想知道我在哪个提交中添加了下面给出的代码 if getListView getChildCount 0 getActivity findViewById android R id empty setVisibility View VISI
  • 是否可以在 Git 项目的所有分支中执行“grep 搜索”?

    是否可以运行git grep在 Git 控件源项目的所有分支中 或者还有其他命令要运行吗 问题 如何在 Git 历史记录中 grep 搜索 提交的代码 https stackoverflow com q 2928584 6309 建议 gi
  • 使用 git 合并两个文件夹

    我正在和一些以前从未使用过 git 的人一起开发一个项目 由于不了解 git 的功能 他们创建了该项目的两个版本 开发版本和生产版本 这两个版本都存在于当前环境中 更复杂的是 除了旧的开发文件夹之外 另一个用户还创建了这些文件夹 所以项目目
  • 使用可通过 FTP 访问的 Web 服务器进行 Git 托管?

    我运行一个 糟糕的 网站 托管在第三方网络服务器上 我可以通过 FTP 访问我的 Web 服务器 据推测 Git 本身具有通过 FTP 推送 拉取的能力 由于我的 Web 服务器已经可以随处访问 我希望将其用作集中式 Git 存储库 我可以
  • 如何在 git merge 提交中列出冲突的文件(父级都有更改的文件)?

    qgit 有一个很好的选择 可以在合并提交中查看 有趣 的文件 其中有趣的文件被定义为在两个父文件中都有更改的文件 查看此类文件的相应命令行是什么 git show name status SHA1 of merge 将向您显示提交消息和在

随机推荐