2017-05-31 136 views
0

我曾在SO和其他地方看到過,建議不要在Google雲端硬盤上使用Git回購。但是,我可以將Git倉庫(託管在GitHub或Bitbucket上)克隆到Google Drive,還是會有同樣的問題?將git回購克隆到Google Drive

我的場景與使用多臺計算機有關。假設我已經在工作中檢查了計算機1的回購並開始使用功能A,但是在完成功能A之前,我需要離開工作。現在,我不想將更改推送到遠程回購,因爲它尚未完成,但我想在計算機2(在家中)上處理它。如果該克隆位於Google雲端硬盤中,那麼我可以選擇離開的地方,並在功能A完成時進行推送。

或者Google雲端硬盤上的克隆與Google雲端硬盤上的回購存在相同的問題?

編輯:我應該說,我喜歡在Google Drive中擁有克隆的另一件事是我只有一個工作克隆,所以在切換計算機時不必擔心推拉。

+0

[版本控制系統](https://en.wikipedia.org/wiki/Version_control)是在40多年前發明的,用於解決您今天遇到的問題,在多臺計算機上工作(由不同的人或同一個人,它並不重要)。您現在要問的是,如果最好忽略VCS提供的所有功能並手動處理所有功能(如在VCS之前)。一個分支就是你需要的,Git擅長處理它們。閱讀[Git分支](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell)。 – axiac

+0

它會有相同的問題。 **不要**混合文件/文件夾同步機制和DVCS存儲庫。 –

+0

您的問題的解決方案只是使用分支機構。爲你推動的工作創建一個分支,這不需要完成,不需要構建,甚至不需要完整的代碼。如果您希望在回家後最後一次提交時「繼續」,只需執行'git commit --amend'。由於這是* your *分支,因此如果您使用其他計算機的更新提交替換提交,則沒有人應該關心。 –

回答

2

你說:

現在,我不想我的變化推送到遠程的回購,因爲它沒有完成,但我想在計算機2上它的工作(在家裏)。

這個問題有很多解決方案,並沒有像使用Google Drive作爲Git倉庫那樣充滿異國情調。

一種選擇是簡單地提交併將未完成的工作推送到常規的Git存儲庫(例如GitHub,Bitbucket)。然後,拉那支在家裏,完成特徵,並修改HEAD承諾:

git commit ---amend 'finished the feature at home' 
git push --force origin yourBranch 

注意力推是必要的,因爲我們已經重寫了該分支的歷史。

但是,如果有問題的分支被公開共享,這個選項可能就不那麼好了。在那種情況下,你的臨時提交可能被其他人的工作所掩埋。解決方法是隻創建一個包含未完成工作的第二個分支。然後,在家中拉第二個分支,完成工作,並通過合併或重新綁定將其帶入主分支。

Git的一個優點是其在分佈式環境中的良好功能。你應該試着看看Git已經可以爲你做什麼。