2016-01-25 57 views
1

在我的項目,我有很多上演它們在很多地方直列配置有我不願意推送到服務器我的本地設置文件。並且服務器文件有我不想拉的外部服務器的設置。Git的部分推及部分拉動,將文件

因此,實際上,我在尋找一種方式,我可以部分地推/從服務器拉出更改/分別。

我覺得我缺少使用Git在這裏處理的一些基本概念。所以,我將解釋如何,我現在管理的事情:

我保持同一項目的兩個目錄,一個是溝通與git(git的目錄)等,我的工作(工作目錄)。所以,每當我做這些準備提交變化工作目錄,我做了以下內容:

  • git的目錄中獲取服務器的更改
  • 比較工作目錄的git目錄使用帶第三方工具,如超越比較
  • 雖然一步比較步驟,我可以很容易地解決任何合併衝突和插入部分必要的代碼,從0工作目錄 git目錄
  • 推新的git目錄更改服務器。

優點:

  • 將不會有合併衝突的情況下爲git的目錄只有從服務器的代碼。
  • 我將對我的項目進行額外備份。
  • 可以輕鬆地從服務器管理的部分代碼推/拉/分別。

缺點:

  • 需要在兩個目錄來管理代碼即git的目錄工作目錄
  • 有時在比較工作目錄git目錄時,很有可能會遺漏一些要比較的文件。

我不知道我是否正確或不正確,因爲您可以看到我使用git來推或拉更改。
請讓我知道我是否可以完全使用git,而不依賴於維護兩個目錄或使用Beyond比較工具。

+0

這聽起來像是一個徹頭徹尾的破解,它繞過了Git框架爲您提供的東西。 Git已經有了一些叫做跟蹤分支的東西,就像你自己的本地副本一樣。您應該只有一個本地位置用於存儲庫,並從那裏同步所有分支。 –

+0

@TimBiegeleisen我會很高興,如果你啓發我如何做到這一點。至少提供一個鏈接對我來說就足夠了。 –

+0

請通過一些Git教程,如[這裏](http://git-scm.com/docs/gittutorial)。根據你的代表,我猜你是一名經驗豐富的工程師,但對於使用Git來說是相當新的。你描述的過程與Git會發生的情況類似,但是隻有一個工作目錄與遠程同步。 –

回答

0

====================== UPDATED 25 Jan 1月===================== ===
您可以爲您的git存儲庫定義多個遠程用於拉/推。這與

git remote add [name] [repo-url] 一樣簡單。

當分段和提交文件時,您選擇要推送到remote_one的文件,然後

git push remote_one branch_name

和remote_two和...的相同過程。從遙控器拉出來也是如此。看看this question


您可以創建的.gitignore文件排除不應該由git的跟蹤,喜歡的配置文件的文件。通常大多數IDE都支持某種可以根據您的項目類型創建該文件的git插件。欲瞭解更多信息,看看at the git documentation.

+0

我不認爲這真的解決了OP的要求。 –

+0

我不能這樣做的部分變化的權利? –

+0

你總是可以在/排除在gitignore文件中指出的文件類型,如果這就是你的意思。 –

1

你的做法是明智的,因爲它保持潛在的敏感信息在非git的文件夾(沒有任何風險意外地從那裏推)

一個可能的簡單手法,但:

當您從git的服務器拉進git的文件夾中,然後就可以開始從「工作」與git add -p逐步增加你的工作(或勞克的interactive staging

訣竅是從混帳回購協議這樣做,而是指到工作文件夾中當前的工作樹(只針對add -p命令)

cd /path/to/git/repo 
git --work-tree=/path/to/working add -p . 

然後,您將決定如何對基礎大塊一大塊補充。