由于某些原因,我正在两台不同的计算机上从事同一项目。
我想使用其中之一,将更改保存到提交中并将其推送到GitHub存储库。当我回到家时,如果我想继续从事该项目,我只想从GitHub中提取它,然后从离开的地方开始工作。
问题是我的项目中有一些我不想上传到GitHub的文件(例如API凭据,测试文件等),而我在.gitignore
文件中声明了它们。
我想问你们,想像一下我的计算机中是否有该项目的旧版本,其中包含所有凭据和测试文件;我cd
进行处理:将现有文件替换为新版本,以将未包含在GitHub commit中但仍在我的本地存储库中的文件保留下来,还是将其粉碎整个本地存储库并粉碎凭证和测试文件?
是否有更好的方法来实现我想要的功能而不必手动复制不存在的文件?
答案 0 :(得分:1)
如果您从家用计算机中拉出,则它可以执行以下操作之一-
在后一种情况下,您将必须解决冲突,然后远程的更改才能成功合并到本地分支。
如果您的回购中有一些未提交的文件(例如您提到的API凭据,测试等),并且执行git pull,则git会给您一个错误,并告诉您提交或存储所做的更改。
在这里保存本地文件并仍然从远程提取更改的最佳选择是-隐藏!
如果您运行
git stash
它将把您未提交的文件移动到一个称为“存储”的区域。完成此操作后,您的本地存储库将被清除,您将能够从远程提取更改。如果您现在想找回更改,可以
git stash pop
这会将最近隐藏的更改弹出到您的仓库中!您可以根据需要隐藏很多次,并且git在列表中维护它。可以通过
访问git stash list
,您甚至可以通过-
有选择地从存储清单中取出物品git stash apply stashListNumber
注意:您将只能隐藏git跟踪的那些文件。如果您添加了一些文件而根本不提交,则可以将它们保留在存储库中,而不必担心任何冲突,并且仍然可以成功地从远程拉出。
我希望这会有所帮助。