Ste*_*lie 23 git version-control
我已经使用git update-index --assume-unchanged了一些文件来保护我对它们的更改.
git stash在存储库中使用时,这些更改将与任何其他未完成的更改一起存储.这是预期的行为,但git stash pop不会将它们带回来,所以变化就会丢失.
任何人都知道如何防止带有assume unchanged位的文件被隐藏更改?或者,您可能知道如何确保对这些文件进行的任何更改至少会被恢复?
假设 - 未更改是性能黑客,并表示您承诺文件未更改.如果您实际更改了文件,则所有投注均已关闭.您应该重新构建您的repo,以便您不提交这些文件(可能提交filename.sample和.gitignore文件名)或使用分支机构播放技巧,以便您不希望与世界其他地方共享的文件在另一个文件中分支或隐藏.
我已经看到/想到了关于如何隐藏这些变化的四条建议.
1:使用涂抹/清洁过滤器将文件更改为您在结帐时所需的文件,并在签入时将其清理干净.丑陋.
2:按照http://thomasrast.ch/git/local-config.html中 的描述创建一个本地配置分支.这里要记住的关键是你在主分支上开发并合并到config分支进行测试.返回主分支进行更改,推送等
3:创建一个私有开发分支,进行你永远不想共享的更改,然后进行虚假合并(git merge -s our privatebranch).然后,您可以在您的专用分支上进行开发和测试,只要更改远离您的正常工作,您不希望共享的更改不应该在您合并时进行.但是,当您从上游获得新的更改时,您需要将它们直接从上游引入私有分支.然后,您从私有合并到主服务器并从主服务器上游推送.你绝不能将master从master转换回private.同样,你必须永远不要改变(好吧,可能rebase -p会起作用,但不能保证).这些合并/转换以及每个必须发生的地方使这不那么有吸引力.
4:创建一个私有开发分支,进行你永远不想共享的更改,然后创建一个合并驱动程序(参见man gitattributes),它将拒绝将有问题的文件从master转换为private或者从private转换为master(可能是通过比较专用分支上的文件的SHA到各个分支的SHA,如果匹配则复制先前的值).
| 归档时间: |
|
| 查看次数: |
2228 次 |
| 最近记录: |