Git 将旧项目从本地 pc 初始化到远程服务器

Git initialize old project from local pc to remote server

我有一个旧项目正在制作中。这个项目的代码在我的本地电脑上,没有上传到服务器的图片。今天我用新功能扩展了项目。

现在我想在这个项目中使用 git。我已经在其中初始化 git 。然后我为我的 bitbucket 帐户创建了一个存储库,并从我的本地电脑推送了我的项目。

我遇到的问题是我想 clone 从 bitbucket 到我的服务器的项目保留 bitbucket 中没有的图像。我该怎么做?

我可以只将 .git 文件从本地复制到我的服务器,然后我从 bitbucket pull 项目吗?

一如既往地尝试一些东西:事先做一个备份

如果文件夹 public/img/ 在存储库中不存在(未被跟踪),情况很简单。

  • 在您的服务器上,转到应该是存储库根目录的文件夹
  • 在此文件夹中初始化一个空的 git 存储库

    $ git init
    Initialized empty Git repository in /some-directory/
    
  • 将您的 bitbucket 存储库添加为远程

    $ git remote add origin <url-to-bitbucket-git-repo>
    
  • 获取所有新更改

    $ git fetch origin
    
  • 最后签出你想要的分支(假设master)并设置tracking

    $ git checkout --track origin/master
    
  • 如果存储库中不存在您的 public/img/ 文件夹,它不会覆盖它


处理旧的应用程序文件

创建一个新分支来保存 文件

git checkout -b <old-application>
git add -v old-application-files/
git commit # Message should indicate that this is an older state of the application

确保不将图像文件夹包含在此提交中(这些提交)

现在 git checkout master 应该可以工作了,你可以通过 git diff[=26 查看 old 状态和当前状态之间的变化=]

git diff <old-application> master

添加:将文件放入 新应用程序 旧应用程序

中仅存在

master

git checkout <old-application> -- ./

这将检查您在旧应用程序中提交的所有文件(有关详细信息,请参阅 git checkout 的最后一种形式

git reset HEAD ./

这将取消暂存

之前git checkout 引入的所有更改
git checkout -- ./

这将用 master 中的文件覆盖修改后的文件。尚未在 master 中的文件将保持原样。

任务完成


以后只需转到此文件夹并执行 git pull