如何在每次从master拉取后将本地更改应用于git回购,而不必推送到master
我的开发设置与团队中的其他开发人员完全不同——mac vs linux -码头工人与流浪汉 每次我拉一个新的分支时,我必须对配置文件和docker相关文件进行大量更改,以使我的开发环境正常工作 我需要避免将它们推到我的工作分支,因为它们不能合并到master中 目前,我将关闭这些文件如何在每次从master拉取后将本地更改应用于git回购,而不必推送到master,git,git-branch,gitignore,git-stash,Git,Git Branch,Gitignore,Git Stash,我的开发设置与团队中的其他开发人员完全不同——mac vs linux -码头工人与流浪汉 每次我拉一个新的分支时,我必须对配置文件和docker相关文件进行大量更改,以使我的开发环境正常工作 我需要避免将它们推到我的工作分支,因为它们不能合并到master中 目前,我将关闭这些文件git add,然后在每次切换分支并执行拉操作时手动将它们添加回来 下面的问题建议我可以git stash然后git stash apply 我认为,如果我保持git存储整洁,并且最后一个仅限于我的开发更改,那么这将
git add
,然后在每次切换分支并执行拉操作时手动将它们添加回来
下面的问题建议我可以git stash
然后git stash apply
我认为,如果我保持git存储整洁,并且最后一个仅限于我的开发更改,那么这将起作用。我想知道是否有更好的方法来处理这个工作流
我可以将这些更改保存在dev安装分支中,并以与stash方法类似的方式使用吗 一种解决方案是将这些文件添加到本地忽略的文件中。 它位于.git/info/exclude。
它的工作方式与通常的一样。gitignore(请参阅) 如果文件在上游更新,则在拉取后,您将看不到本地文件上的任何修改。 在将这些文件从该排除文件中删除之前,您将无法提交对这些文件的任何更改。我在前面接受的答案之外添加了一个答案,只是为了将实现“这是我的环境”所获得的所有其他经验汇集在一起 保留gitignore文件的本地开发人员版本以处理个人开发人员设置 这是一个非常有用的链接:本地(个人)、共享或全局(所有回购) 基本上,为了保持您自己的本地文件版本(不会被git的推拉操作影响),您需要:
- 将相关文件添加到.git/info/exclude中的个人排除文件中(感谢@Abel接受的答案)
- 从git缓存中删除这些文件(如果它们已经暂存),并在下一次推送时远程删除
- 使用git reset--file_name将它们从暂存中删除
- 使用
git更新索引从git工作流中删除它们--跳过工作树
跳过工作树
- 使用
gitls文件-v.|grep^S
- 要将文件添加回工作树,请使用git update index--no skip worktree
git rm--cached file\u name
,即使我已经将它们.git/info/exclude
。这个页面在这方面对我也很有用,因为它解释了gitignore的各种方式-本地、全局和共享。我很高兴我能提供帮助,并感谢“git rm--缓存文件名”我没有想到这一点。因此需要更多更新:git rm--cached file\u name
在我们希望从远程回购中删除文件并只保留本地版本时是合适的。在我的情况下,我想离开远程版本,但只保留本地副本与我自己的调整git reset--file_name
将取消相关文件的存储,但gitignore文件仍不会覆盖这些文件,因为它们之前已被跟踪过。这个答案显示了如何使用git update index--skip worktree从索引中删除