如何在git远程存储库上接受推送的更改?

如何在git远程存储库上接受推送的更改?,git,Git,我已将git远程存储库从web服务器克隆到本地计算机上。在本地机器上进行更改后,我已使用git远程存储库将更改提交并推送到web服务器,并在运行git status时查看是否有更改。但是,我能想到的实现更改的唯一方法是运行git stash。我相信这是不正确的方式。我已经尝试过git fetch和git merge,但这是我试图用其他人的更改来更新的远程存储库 git status # On branch master # Changes to be committed: # (use "g

我已将git远程存储库从web服务器克隆到本地计算机上。在本地机器上进行更改后,我已使用git远程存储库将更改提交并推送到web服务器,并在运行git status时查看是否有更改。但是,我能想到的实现更改的唯一方法是运行git stash。我相信这是不正确的方式。我已经尝试过git fetch和git merge,但这是我试图用其他人的更改来更新的远程存储库

git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   test.txt
#

git stash
Saved working directory and index state WIP on master: eb8230d Changes
HEAD is now at eb8230d Changes
git状态
#论分行行长
#要提交的更改:
#(使用“git重置磁头…”取消分级)
#
#修改:test.txt
#
暂存
主设备上已保存的工作目录和索引状态WIP:eb8230d更改
头部现在处于eb8230d位置

您需要让远程Web服务器从其跟踪的分支提取最新提交。这是通过git checkout(branchname)和git pull(一旦在正确的分支上)手动完成的

您可以编写cronjob来定期尝试git拉取,或者为存储库设置挂钩。这将在每次将提交推送到repo时向远程web服务器发送一条消息

我通过使用Jenkins服务器和ssh命令插件来ssh-in并执行git拉取来解决这个问题

另一种解决方案是将Web服务器添加为另一个远程服务器。您可以通过键入:

git remote add webserver ssh://<your user name>@<FQDN>:22/path/to/repo.git
git push webserver <branch>
git远程添加web服务器ssh://@:22/path/to/repo.git
git推送Web服务器

您需要让远程Web服务器从其跟踪的分支提取最新提交。这是通过git checkout(branchname)和git pull(一旦在正确的分支上)手动完成的

您可以编写cronjob来定期尝试git拉取,或者为存储库设置挂钩。这将在每次将提交推送到repo时向远程web服务器发送一条消息

我通过使用Jenkins服务器和ssh命令插件来ssh-in并执行git拉取来解决这个问题

另一种解决方案是将Web服务器添加为另一个远程服务器。您可以通过键入:

git remote add webserver ssh://<your user name>@<FQDN>:22/path/to/repo.git
git push webserver <branch>
git远程添加web服务器ssh://@:22/path/to/repo.git
git推送Web服务器

您需要让远程Web服务器从其跟踪的分支提取最新提交。这是通过git checkout(branchname)和git pull(一旦在正确的分支上)手动完成的

您可以编写cronjob来定期尝试git拉取,或者为存储库设置挂钩。这将在每次将提交推送到repo时向远程web服务器发送一条消息

我通过使用Jenkins服务器和ssh命令插件来ssh-in并执行git拉取来解决这个问题

另一种解决方案是将Web服务器添加为另一个远程服务器。您可以通过键入:

git remote add webserver ssh://<your user name>@<FQDN>:22/path/to/repo.git
git push webserver <branch>
git远程添加web服务器ssh://@:22/path/to/repo.git
git推送Web服务器

您需要让远程Web服务器从其跟踪的分支提取最新提交。这是通过git checkout(branchname)和git pull(一旦在正确的分支上)手动完成的

您可以编写cronjob来定期尝试git拉取,或者为存储库设置挂钩。这将在每次将提交推送到repo时向远程web服务器发送一条消息

我通过使用Jenkins服务器和ssh命令插件来ssh-in并执行git拉取来解决这个问题

另一种解决方案是将Web服务器添加为另一个远程服务器。您可以通过键入:

git remote add webserver ssh://<your user name>@<FQDN>:22/path/to/repo.git
git push webserver <branch>
git远程添加web服务器ssh://@:22/path/to/repo.git
git推送Web服务器

看起来我需要运行

git checkout -f

将web服务器更新为分支机构负责人或更改。

看起来我需要运行

git checkout -f

将web服务器更新为分支机构负责人或更改。

看起来我需要运行

git checkout -f

将web服务器更新为分支机构负责人或更改。

看起来我需要运行

git checkout -f

将web服务器更新为分支机构的负责人或进行更改。

我猜您的意思是远程存储库有一个工作目录,它是一个实时网站。您希望通过将更改推送到远程存储库来将更改部署到您的网站,并将更改自动应用到工作目录,即实时网站

您要做的是使用post接收挂钩设置远程存储库,该挂钩将签出新文件

Git的默认设置是假设工作目录中的更改很重要,并且不应该轻易被吹走。这是因为默认设置的工作目录是用户正在工作、进行更改等的实际目录。对于作为实时网站的存储库,此假设不成立,因此默认行为不太有效

特别是,推送到远程存储库将更新该存储库上的分支和git索引,但不会对工作目录进行任何更改。这使它看起来好像在您的工作目录中有更改,只需撤消刚刚推送的任何工作

您可以使用已经找到的命令,
git checkout--force
并将其放入一个
post receive
钩子中,任何时候推送更改时,存储库都将签出新文件。这会清除工作目录中的任何更改,但这些“更改”可能永远都不会是伪造的更改,而只是撤销推送的更改。如果您曾经手动编辑远程存储库工作目录中的任何内容,则可能会丢失这些编辑


另一种选择是让web服务器上的存储库成为一个空存储库,远程存储库通常应该是空存储库。让post receive钩子脚本运行命令,将网站部署到另一个位置,而不是将工作目录也用作实时网站

我猜是什么