Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
协调在git存储库外部所做的更改_Git - Fatal编程技术网

协调在git存储库外部所做的更改

协调在git存储库外部所做的更改,git,Git,我已将git回购克隆到服务器上的/tmp。然后,我继续将git repo的内容复制到/var/my site,而没有实际复制.git文件本身。这是几周前的事了。我已经对/var/my site目录进行了几次更改,而不必担心在初始安装到/var/my site时,.git文件夹没有被移动 几周后,远程git repo已经更新了新功能,我希望在不损失几周工作的情况下充分利用这些功能。有没有什么方法可以让我更新/var/my site的源代码,而不必使用新功能仔细编辑每个文件、拖放、剪切和粘贴等,并且

我已将git回购克隆到服务器上的
/tmp
。然后,我继续将git repo的内容复制到
/var/my site
,而没有实际复制
.git
文件本身。这是几周前的事了。我已经对
/var/my site
目录进行了几次更改,而不必担心在初始安装到
/var/my site
时,
.git
文件夹没有被移动

几周后,远程git repo已经更新了新功能,我希望在不损失几周工作的情况下充分利用这些功能。有没有什么方法可以让我更新
/var/my site
的源代码,而不必使用新功能仔细编辑每个文件、拖放、剪切和粘贴等,并且仍然保留我以前的工作

只是将
.git
文件夹从
/tmp
移动到
/var/my site
就行了,还是这不像我想的那么简单

将.git文件夹从/tmp移动到/var/my site work,这并不像我想象的那么简单

此时,
mysite
目录将成为git存储库,您将能够:

  • 提交您的更改,然后运行
    git pull
    与远程服务器合并
  • 或者隐藏更改(
    git stash
    ),运行pull,然后将更改应用回原来的位置(
    git stash pop
    git stash apply
    保留更改)

您还有在
/tmp
中制作的克隆吗?如果是这样,您可以将文件从
/var/my site
复制回该克隆,提交它们(因为这是存储库的自己分支),然后合并来自远程repo的更改。这将为您提供一个包含所有远程更改和您的更改的最新分支。然后,您可以将其复制回
/var/my site


如果没有原始克隆,可以尝试创建远程存储库的新克隆并将文件复制到该克隆中,但由此产生的更改集可能会令人困惑。如果您拥有最初制作的克隆,那么就容易多了。

不那么麻烦的方法是,在您第一次克隆时,找到repo的
头是在哪个提交上。然后,您可以将修改后的文件复制到当前分支指向该头部的存储库中,提交更改并尝试与远程存储库的最后更新合并

大致上,这看起来是这样的:

git checkout -b temp
git reset --hard {OLDCOMMIT}
cp /var/my-site/* .
[commit changes]
git merge origin/master

如果您很难找到原始提交id,可以使用
git reflog
命令,该命令提供分支更改的最后一个提示的历史记录。如果您只是最近才拉,并且得到了很多更改,您可以在拉之前找到旧的
标题。

请使用更明确的标题。@lbonn,听起来可能像是“git回购的问题,恰好不是git回购”如果复制到新的克隆回购,最有可能的结果是修复冲突。新克隆的唯一真正区别是步骤的顺序。在复制自的提交
/var/my site
处创建新分支。正常情况下,将更改复制、提交并合并回主分支。so 1。cp/tmp/.git/var/mysite2。吉特藏3。吉特拉。4.吉特隐藏流行音乐?您可能想使用
cp-r
递归复制目录。同时备份原始文件,以防万一。