GitHub - 将现有项目拉到本地并替换现有文件而不删除不存在的文件

GitHub - Pull localy an existing project and replace existing files without removing non existing one

出于某些原因,我在两台不同的计算机上处​​理同一个项目。

我想在其中一个中工作,将更改保存到提交并将其推送到 GitHub 存储库。当我回到家时,如果我想继续做这个项目,我只想把它从 GitHub 拉出来,然后从我离开的地方开始工作。

问题是我的项目中有我不想上传到 GitHub 的文件(作为 API 凭据、测试文件等),我已将它们声明在我的.gitignore 文件。

我想问问你们,假设我的计算机中有一个旧版本的项目,上面有所有的凭据和测试文件;我 cd 对它进行拉取:它会用新版本替换现有文件吗?保留 GitHub 提交中未包含但它们在我的本地存储库中的文件,或者它会破坏整个本地存储库并破坏凭据和测试文件吗?

有没有更好的方法来实现我想要的,而不必手动复制不存在的文件?

如果你从家用电脑上拉,它可以做以下事情之一 -

  1. 如果 git 发现没有冲突的更改,则成功将更改从远程拉取到本地。
  2. 如果无法直接从远程获取更改,则给出错误,因为 您的本地分支中存在冲突更改。

在后一种情况下,您必须解决冲突,然后来自远程的更改才能成功合并到您的本地分支。

如果你的回购中有一些未提交的文件,如你提到的 API creds、tests 等,如果你执行 git pull,git 会给你一个错误并告诉您提交或隐藏您的更改。

此处保留本地文件并仍然从远程提取更改的最佳选择是 - 存储!

如果你运行

git stash

它会将您未提交的文件移动到一个名为 Stash 的区域。执行此操作后,您的本地存储库将被清理,您将能够从远程提取更改。如果您现在想要恢复您的更改,您可以这样做

git stash pop

这会将最近隐藏的更改弹出回您的存储库!您可以根据需要多次存储,git 将其保存在列表中。可以通过

访问
git stash list

您甚至可以通过 -

有选择地从存储列表中取出物品
git stash apply stashListNumber

注意:您将只能隐藏那些被 git 跟踪的文件。如果你添加了一些文件但根本没有提交,你可以将它们保留在你的 repo 中而不必担心任何冲突并且仍然可以成功地从远程拉取。

希望对您有所帮助。