好吧,我认为这是一个棘手的问题,甚至可能是"不可能",但这是我的问题:我目前正在同时使用两台计算机进行项目。使用Git,我可以在一台计算机上更改文件,提交它,将其上传到服务器并在另一台计算机中获取。但是当你准备好提交时,应该提交#34;随着变化。我不想提交未完成的文件,或者破坏和未经测试的文件,除此之外会使我的所有修订历史变得混乱。
有没有办法可以在git上共享多个计算机上的文件,未完成的,未经测试的文件,哪些东西不能保存为项目中的良好还原点?我考虑过藏匿,但据我所知,藏匿是本地的,所以我不能在另一台计算机上找回我的藏匿处。
答案 0 :(得分:3)
不,你不能用Git分享未经修改的更改。这不是Git的用途。 Git会跟踪内容,如果您没有告诉它跟踪您的更改,Git会 nothing 来存储或传输这些更改。
相反,不要过分担心只有当事情已经完成时才会承诺。
不断承诺。一直承诺。在分支机构上工作,当您完成后,将该分支压缩到一个(或几个)提交。 Git专门为支持这项工作流而进行分支和提交非常便宜。
答案 1 :(得分:1)
我认为这是不可能的,你可以做其他分支并提交到该分支,并且不要将该分支合并到主分支中,这样你的代码仍然可以恢复点。
答案 2 :(得分:1)
你需要另一个分支。上你当前的分支 - 你要分支的那个分支然后做:
git checkout -b new_branch
然后进行更改,提交并上传该分支。
git push -u origin new_branch
然后在另一台计算机上拉下那个分支。
执行此方法不会弄乱master
分支上的任何其他文件,当您准备将此new_branch
合并到master
时,您只需将其合并即可。在git中无法共享未提交的文件。
答案 3 :(得分:1)
是的,存放是本地的,所以它不会帮助你。一种解决方案是手动将文件从一台计算机复制到另一台计算机,但是缺少版本控制点。为什么不使用自己的分支呢?
这样你就可以创建分支,并从两个pc上提交它。阅读有关分支here的更多信息。但是,合并时会将所有提交都放到master的历史记录中。但没有什么是不可能的。
在合并到master中时有--squash选项,它将所有branch-commits合并为一个。
- 壁球
- 无壁球
生成工作树和索引状态,就像发生了真正的合并一样(合并信息除外),但实际上并没有 提交或移动HEAD,也不记录$ GIT_DIR / MERGE_HEAD导致 next git commit命令用于创建合并提交。这允许你 在当前分支的顶部创建一个提交,其效果是 与合并另一个分支相同(或者在章鱼的情况下更多)。
完成所有工作后,您可以将其合并为(仅从中进行单一提交):
git checkout master
git merge --squash your_branch
请告诉我这是否对您有帮助!