如何在多台计算机上处​​理未提交的 git 文件

How to work with a non-commited git file over multiple computers

好吧,我认为这是一个棘手的问题,甚至可能 "not possible",但这是我的问题:我目前正在同时使用两台计算机进行一个项目。使用Git,我可以在一台电脑上更改一个文件,提交它,上传到服务器并在另一台电脑上获取它。但是,当您准备好 "commit" 进行更改时,应该进行提交。我不喜欢提交未完成的文件,或者损坏的和未经测试的文件,此外这会使我所有的修订历史变得混乱。

有没有一种方法可以让我在多台计算机上共享 git 中的文件、未完成的、未测试的文件,这些文件不会保存为项目中的良好还原点?我考虑过存储,但据我所知,存储是本地的,所以我无法在另一台计算机上检索我的存储。

我认为这是不可能的,你可以创建其他分支并提交到那个分支,不要将该分支合并到主分支,这样你的代码就可以保持原样以恢复点。

您需要另一个分支。进入您当前的分支 - 您想要分支的分支然后执行:

git checkout -b new_branch

然后进行更改、提交并上传该分支。

git push -u origin new_branch

然后在另一台计算机上拉下该分支。

执行此方法不会弄乱 master 分支上的任何其他文件,当您准备好将此 new_branch 合并到 master 时,您只需合并它即可。 git.

中无法共享未提交的文件

不,您不能与 Git 共享未跟踪的更改。这不是 Git 的目的。 Git 跟踪内容,如果您不让它跟踪您的更改,Git 不会 存储或传输这些更改。

相反,不必担心仅在 "done".

时才提交

坚持不懈。一直承诺。在一个分支上工作,完成后,将该分支压缩为一个(或几个)提交。 Git 使分支和提交变得非常便宜,专门用于支持此工作流程。

是的,存储是本地的,所以它不会帮助你。一种解决方案是手动将文件从一台计算机复制到另一台计算机,但这缺少版本控制的要点。你为什么不使用你自己的分支?

这样你就可以创建分支,并从两台电脑上提交给它。阅读更多关于分支 here 的信息。但是,合并时会将您所有的提交都放入 master 的历史记录中。但没有什么是不可能的。

合并到 master 时有 --squash 选项,它将所有分支提交合并为一个。

--squash

--no-squash

Produce the working tree and index state as if a real merge happened (except for the merge information), but do not actually make a commit or move the HEAD, nor record $GIT_DIR/MERGE_HEAD to cause the next git commit command to create a merge commit. This allows you to create a single commit on top of the current branch whose effect is the same as merging another branch (or more in case of an octopus).

完成所有工作后,您可以使用它合并为(仅从中进行一次提交):

git checkout master
git merge --squash your_branch

如果对您有帮助,请告诉我!