如何在多台计算机上使用未提交的git文件

ih99xse1  于 2023-05-27  发布在  Git
关注(0)|答案(4)|浏览(114)

好吧,我认为这是一个棘手的问题,甚至可能是“不可能的”,但这是我的问题:我正在做一个项目,同时使用两台电脑。使用Git,我可以在一台计算机上更改文件,提交它,上传到服务器并在另一台计算机上获取它。但是提交应该在你准备好“提交”一个改变的时候进行。我不喜欢提交未完成的文件,或者损坏的和未测试的文件,除此之外,这会弄乱我所有的修订历史。
有没有一种方法可以让我在多台计算机上共享git中的一个文件,未完成的,未测试的文件,一些不会被保存为项目中一个好的恢复点的文件?我考虑过藏起来,但据我所知,藏起来是本地的,所以我无法在另一台计算机上检索我的藏起来的东西。

polkgigr

polkgigr1#

不可以,您不能与Git共享未跟踪的更改。这不是Git的作用。Git跟踪内容,如果你不告诉它跟踪你的更改,Git就不会存储或传输这些更改。
相反,不要太担心只有当事情“完成”时才承诺。
不断承诺。一直坚持下去。在一个分支上工作,当你完成的时候,把这个分支压缩成一个(或几个)提交。Git使分支和提交变得非常便宜,特别是为了支持这种工作流。

iyzzxitl

iyzzxitl2#

是的,藏匿是本地的,所以它不会帮助你。一种解决方案是手动将文件从一台计算机复制到另一台计算机,但这忽略了版本控制的要点。你为什么不用你自己的分支做呢?
这样你就可以创建分支,并在两台电脑上提交。阅读更多关于分支here。不过,合并时,这会将所有提交放入master的历史记录中。但没有什么是不可能的。
当合并到master中时有--squash选项,它将所有的分支提交合并到一个中。
--壁球
--无挤压
生成工作树和索引状态,就像一个真实的的合并发生了一样(除了合并信息),但实际上不进行提交或移动HEAD,也不记录$GIT_DIR/MERGE_HEAD以导致下一个git commit命令创建合并提交。这允许你在当前分支的顶部创建一个提交,其效果与合并另一个分支相同(或者在章鱼的情况下更多)。
在完成所有工作后,你可以使用它合并为(从它进行单次提交):

git checkout master
git merge --squash your_branch
am46iovg

am46iovg3#

我认为这是不可能的,相反,你可以创建其他分支并提交到该分支,而不是将该分支合并到主分支,这样你的代码就可以保持原样。

axr492tv

axr492tv4#

你需要另一个分支。进入你当前的分支--你想分支的分支,然后做:
git checkout -b new_branch
然后进行更改,提交并上传该分支。
git push -u origin new_branch
然后在另一台电脑上把那根分支拉下来。
这样做不会弄乱master分支上的任何其他文件,当你准备将这个new_branch合并到master中时,你只需要合并它。在git中无法共享未提交的文件。

相关问题