Windows 與 Mac 平台用 Dropbox 共享 Git 項目,怎麼設置不會出現衝突?

除了換行符問題,在 Windows 下設置 Git:

git config --global core.autocrlf true

還需要做哪些設置?

=======

更新:

正如評論所說,我提問的初衷是兩台(或以上)電腦都是自己在用,Dropbox上的文件都只有我一個人修改。我是希望整個工作目錄「無縫」地在多台工作機器上同步。

後來查了很多StackOverflow 上的問答,大部分也是像這裡的回答一樣,在說怎麼樣使用Dropbox 作為Remote Repo 的問題,這並不是我想要的答案。

Remote Repo,公開Repo 使用GitHub,私人Repo 使用Bitbucket,一直很和諧。

我的疑問也在StackOverflow 上找到了一模一樣的,github - Should I keep my Git folder outside Dropbox?

下面的回答是「不要把Git 項目放在Dropbox 同步」,雖然很多時候等待Dropbox 同步完成,就沒有問題,但是偶爾還是會出現問題。具體可以點進去看回答。


Git和Dropbox混搭是會出問題的,強烈建議不要一起使用。因為Dropbox只是做單純的同步,甚至會把你git里沒有commit的change同步給其他用戶,這是違背git的設計初衷的。

這可不是換行符那麼簡單。

另外在分支管理上,Dropbox也只能添亂,舉個例子:

在dropbox里創建了一個新的git repo,創建一個新文件branch.txt,內容如下:

(默認是在master branch下。)

做了正常的git init, add, commit以後:

git checkout -b dev master

創建一個新的dev branch,將同一個文件修改如下:

在本地保存文件。(沒有commit)

這時候在網頁版打開該文件,內容如下:

可以看到,由於dropbox的同步機制,它只會同步你本地文件夾下「現有」的內容,而且還是實時同步,這就讓git的版本管理失去了意義。想像一下你和小夥伴分別在原本愉快地在一個branch下工作,結果他checkout了另一個branch,結果你這邊的文件也也全都切到另一個branch了,這是有多蛋疼。。所以用Git就老老實實去用Github/Bitbucket,手勤快一點多fetch/pull,這個dropbox真幫不了你。


千!萬!別!這!樣!

如果不想丟數據、出現奇奇怪怪的衝突,那就老老實實去搭建一個內網的 git 伺服器。


千萬不要這樣做!

git的對文件系統的操作不是事務性的,dropbox也不是實時更新的.

會發生衝突,嚴重時會破壞整個git倉庫.

如果你想方便一點的話,我建議只將工作區同步,並且將工作區文件夾中的.git文件夾在

dropbox里ignore. 但是即使這樣,在回退的時候也可能導致dropbox蒙掉.


黑暗料理既視感……


卸載dropbox或者git是你唯一要做的設置。

dropbox是同步軟體,git是非同步離線版本控制軟體。如果你只是想要同步功能,希望所有終端上的文件都一樣,就用dropbox。如果你想要多人協作,版本控制,分支合併,就用git。同步可以用個簡單的伺服器/筆記本做伺服器端,這個伺服器端可以簡單到本地磁碟。

二者的優劣勢和哲學完全不同,混用既無必要,也會彼此衝突影響,並不推薦。


Top3的架構師教你這樣用的?


推薦閱讀:

在使用Git進行協作開發時,主要的困難有哪些(如果有的話)?
Git 裡面的 origin 到底代表啥意思?
如何評價臉書Research Scientist痴迷於.DS_Store這一macOS常見文件?
如何理解 Git 的分散式?
md文件怎麼用?

TAG:Mac | macOS | Dropbox | MicrosoftWindows | Git |