2011-12-16 50 views
3

我是Git的新手。我在GitHub上有一個公共回購協議,我的朋友需要同時在這個項目上工作。我們使用內置Git功能的Netbeans 7.1。我可以從克隆並提交GitHub上,但如考慮到我們有以下結構:Git&Issues about Simultaneous Teamwork

  • A.java
  • B.java
  • C.java

    1. 如果用戶#1更改A.java和用戶#2更改B.java,我們如何合併它們?
    2. 如果用戶#1和用戶#2都更改C.java,會發生什麼情況?

有遠程/取&遠程/拉,我無法理解上的差異。我們將作爲4人在學校項目上工作,我們也想學習版本控制。

回答

3

git fetch從遠程git倉庫中提取更改,但不會更改您是本地分支機構跟蹤遠程更改。 Git pull是git fetch,然後是本地副本上的git merge

一般來說,我做

git fetch 
git status 
git merge 

梅傑斯會做,就像任何其他供應鏈管理。如果發生衝突,您將有機會編輯/修復它們,然後您必須將更改推送到遠程回購站以供其他人查看。用戶也可以編輯同一個文件,這些更改不會導致衝突並且會合並。

1

拉入git等同於執行提取然後合併。

當您執行提取操作時,它只是檢索更新後的存儲庫數據,但不會將更改合併到本地工作副本中。

在你的例子情況:

  1. Git會自動合併變爲本地工作副本。由於更改是在單獨的文件中(A.java & B.java),所以不會有衝突,所以git只會無縫地更新其他文件。
  2. 在這種情況下,它取決於您的更改在文件C.java中的位置與其更改的位置。
    • 如果他們在不同的地方,git會將這些修改合併在一起而不會出現問題。
    • 如果更改位於文件中的相同位置,git會將文件標記爲衝突並要求您手動解決差異。
4

你需要的是一個關於git的基本教程。我喜歡這一個:git Magic

簡短的回答是,git是完全建立這種需要。您只需瞭解它如何合併和組合來自多個用戶的更改。但一旦你瞭解它,它就會非常出色。

+0

不錯的教程btw謝謝! – Mustafa 2011-12-16 21:45:05