Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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_Github - Fatal编程技术网

Git本地与远程同步

Git本地与远程同步,git,github,Git,Github,我有一个与remote完全相同的本地文件夹,其中有些文件是我之前包含的(示例中的test2.txt)。问题是我从中删除了.git文件夹。所以我只想再次添加git 例如: 本地 folder1/ folder1/test.txt folder1/test2.txt 远程 folder1/ folder1/test.txt 我所尝试的: 我添加了--允许不相关的历史记录,因为它给了我一个错误致命:拒绝合并不相关的历史记录 现在一切都一团糟……我建议如下: 将遥控器克隆到新文件夹中 git cl

我有一个与remote完全相同的本地文件夹,其中有些文件是我之前包含的(示例中的test2.txt)。问题是我从中删除了.git文件夹。所以我只想再次添加git

例如:

本地

folder1/
folder1/test.txt
folder1/test2.txt
远程

folder1/
folder1/test.txt
我所尝试的: 我添加了
--允许不相关的历史记录
,因为它给了我一个错误
致命:拒绝合并不相关的历史记录


现在一切都一团糟……

我建议如下:

  • 将遥控器克隆到新文件夹中

    git clone [url of repo here] new
    
    cd /new/folder
    git clone [my repo]
    
  • 在此新克隆中,
    签出
    正确的目标分支

    cd new
    git checkout some/branch
    
  • 现在将
    .git/
    文件夹从
    new/
    移动到您的工作目录

    mv new/.git  workdir
    
你应该处于你期望的状态

检查是否
git status
git diff
git add file2.txt
等。。。按你的意愿工作


您可以删除(现在无用的)
new/
目录。

尽管它需要使用
git-symbolic-ref
git-read-tree
进行一些低级操作,但完全可以不接触您的工作目录

#创建一个空的.git/目录。
初始化
#获取远程存储库。
git远程添加源
git获取
#获取Git的索引以匹配origin/master,而不接触工作树。
#
#我们希望Git的暂存区域(称为索引)与远程存储库匹配。
#我们不能使用'git checkout',因为它会抱怨文件碍事。
#我们不能使用'git reset--hard',因为它会覆盖本地更改。
git符号参考头参考/遥控器/原点/主
git读取树头
#让这成为主分支。
git签出-t-b主控
()


您添加、修改或删除的任何文件都将以这种方式显示在
git status
中。看起来Git一直都在那里。

我通过以下方式做到了:

  • 在新文件夹中克隆存储库

    git clone [url of repo here] new
    
    cd /new/folder
    git clone [my repo]
    
  • 将新文件夹复制到旧文件夹(使用.git文件夹)

  • 提交新文件

    git commit -m "add text2 file"
    
通过这种方式,我提交了新文件而不会丢失它们,并且能够将我的文件夹与远程存储库“同步”