Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git在工作未完成且我正在移动工作场所时提交和推送_Git - Fatal编程技术网

git在工作未完成且我正在移动工作场所时提交和推送

git在工作未完成且我正在移动工作场所时提交和推送,git,Git,我知道,将未完成的工作提交并推送到存储库不是一个好主意 然而,有时我需要把工作场所从一家公司搬到另一家公司,从一家公司搬到另一家公司。拥有一个临时存储库可能会解决这个问题,但我认为它需要一些烦人的解决方法: $ cp ~/real_proejct ~/temp_project $ cd ~/temp_project $ git add . && git commit -m 'I am returning home' && git push temp_repo ma

我知道,将未完成的工作提交并推送到存储库不是一个好主意

然而,有时我需要把工作场所从一家公司搬到另一家公司,从一家公司搬到另一家公司。拥有一个临时存储库可能会解决这个问题,但我认为它需要一些烦人的解决方法:

$ cp ~/real_proejct ~/temp_project
$ cd ~/temp_project
$ git add . && git commit -m 'I am returning home' && git push temp_repo master
# Now I am home
$ cd ~/temp_project && git pull
# some edit
$ git add . && git commit -m 'I am going to company' && git push temp_repo origin
# In company
$ git pull
$ cp ~/temp_project ~/real_project
我觉得这不是一件好看的东西。在这种情况下,您如何处理这种情况

  • 我不在家工作
  • 使用便携式驱动器
  • 照手术医生说的做
  • 其他
  • 使用树枝。有关语法/示例,请参见。(但我不确定樱桃采摘是否总是最好的,尽管正如那里所建议的那样……你也可以拉合并完整的树枝。)


    如果其他人在自己的分支或主分支上工作,无论代码是否编译或崩溃,您都不会用代码来打扰他们。有些人还使用它同时开发多个独立的功能。也许您被一个bug阻止了,所以您将代码分支,然后修复bug,然后返回分支。在代码正常工作之前提交非工作代码是没有意义的。

    有几个选项:

    • 使用公共远程分支
    • 使用另一个存储库(
      git-remote
      是您的朋友)
    请注意,如果您推送未完成的工作,强制推送以清除已损坏的历史记录(在推送之前重新设置/重构您的提交历史记录)可能会很有趣

    我建议采取以下措施:

    • 为您的私人工作设置新存储库
    • 将新存储库添加为远程存储库
    • 在本地添加新的同步分支
    • 将跟踪分支从同步分支添加到新回购
    • 当您想要同步您的环境时,请使您的本地分支看起来像您想要的那样
    • 强行推动地方分支机构
    • 在远程计算机上执行提取。并将同步分支重置为远程/同步
    见:


    有时候我也不得不做同样的事情。如果不想在历史记录中看到这些提交,可以将其还原。如果有更有效、更好的方法,我想知道。在这种情况下,我在另一个分支上工作并提交所有内容,推送到服务器进行远程访问和备份。当它完成后,我重新设置基础-我在一个或多个有意义的提交中重新设置所有内容的基础,在master上重新设置分支的基础,这样我将快速前进并合并到master中(这是完全线性的)。我同意@Peter。使用“git checkout-b TravelBranch”进行分支,在到达目的地后完成任务,然后将临时分支合并回原始分支。这应该是一个简单的修复,不会干扰其他处理原始分支的人。