2016-02-10 134 views
0

我經常在我的筆記本電腦上有一個git存儲庫的開發克隆,在該筆記本上創建功能分支並實現功能。當我在某個功能上工作的一半時,需要在同一個存儲庫中的其他功能上工作時,我會執行一個git stash並檢出該功能的新分支。確定刪除本地git存儲庫是否安全

當然,git branch告訴我所有有分支機構。儘管如此,過了一段時間,我的筆記本電腦上可能存在本地結帳,但某些功能分支未被推送,甚至不存在於遠程原始分支上。在一段時間沒有在項目上工作之後,結賬可能會讓我的工作區變得混亂,我可能希望將其從筆記本電腦中移除。

而且,我也可能會想知道對儲存有什麼新的文件,並改變我的筆記本電腦存在,但不是在原點。 git status告訴我這是關於當前分支簽出,但只是部分,因爲它沒有說服務器上已經提交了哪些提交,哪些不提交。而且,每個分支也不這樣做。

有一個Git命令,可以告訴我什麼新的文件和變化,其特點分支機構都可以在我的筆記本電腦,但不origin,這樣我能確定它是否是安全的或不去除從混帳回購協議我的筆記本電腦?

這將是很好如果命令:

  • 因爲如果它也存在於起源,起源是最新與和其中每個本地分支州其他來源樹枝它已經被合併(很多時候你會將一個特性分支與主分支合併在一起,並且不要將它推到原點)。

  • 每個分支狀態是否有未提交的本地更改尚未或剛剛藏匿。

  • 我應該知道的其他坑剔除。

總的來說,我想「是它安全地刪除這個倉庫知道原產存在什麼」,更是一個「什麼東西都在我這個回購留下懸案」命令。

注意,我想也可以知道什麼是我的筆記本電腦,而不是產地,爲指針着想,我應該還是可以清理有用的。

移動回購到備份文件夾是一個沒有去,這造成了很多混亂的,到最後它仍然不清楚哪個代碼是最最新用最少的錯誤。

東西可能工作會顯示是在本地,不存在原產提交,並承諾是在原產地不同的分支,因爲它們是本地命令。此外,改變各分支顯示未提交一個命令將是很好的,即那些AR

回答

1

第一(和非常好)步驟正在注視的

git push origin --all --dry-run 

輸出即示出了分支被推送到遠程。如果輸出爲空(或「最新」或某事),則可以安全地刪除本地分支。

幫助另一個命令是

git fetch origin 
git cherry -v master origin/master 

它顯示了常見的本地主產地和/主的提交。以-爲前綴的 已經在原始/主標記中,前綴爲 a +的符號不是,即如果所有提交的提交都以-爲前綴,則放棄本地分支是安全的。如果一些以+作爲前綴,則主控和原點/主控在這些提交方面有所不同。

其實我會堅持,因爲它更容易解釋。

0

上面的缺失部分(IIUC)是:如果我刪除了這個回購,什麼本地文件將永遠丟失? (本地數據庫文件,例如,由.gitignore忽略)。

這在我看來,

git clean -nxd 

回答了這個問題。