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

时间:2019-05-06 11:48:23

标签: git github repository

由于某些原因,我正在两台不同的计算机上从事同一项目。

我想使用其中之一,将更改保存到提交中并将其推送到GitHub存储库。当我回到家时,如果我想继续从事该项目,我只想从GitHub中提取它,然后从离开的地方开始工作。

问题是我的项目中有一些我不想上传到GitHub的文件(例如API凭据,测试文件等),而我在.gitignore文件中声明了它们。

我想问你们,想像一下我的计算机中是否有该项目的旧版本,其中包含所有凭据和测试文件;我cd进行处理:将现有文件替换为新版本,以将未包含在GitHub commit中但仍在我的本地存储库中的文件保留下来,还是将其粉碎整个本地存储库并粉碎凭证和测试文件?

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

1 个答案:

答案 0 :(得分:1)

如果您从家用计算机中拉出,则它可以执行以下操作之一-

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

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

如果您的回购中有一些未提交的文件(例如您提到的API凭据,测试等),并且执行git pull,则git会给您一个错误,并告诉您提交或存储所做的更改。

在这里保存本地文件并仍然从远程提取更改的最佳选择是-隐藏!

如果您运行

git stash

它将把您未提交的文件移动到一个称为“存储”的区域。完成此操作后,您的本地存储库将被清除,您将能够从远程提取更改。如果您现在想找回更改,可以

git stash pop

这会将最近隐藏的更改弹出到您的仓库中!您可以根据需要隐藏很多次,并且git在列表中维护它。可以通过

访问
git stash list

,您甚至可以通过-

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

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

我希望这会有所帮助。