2012-03-20 46 views
1

我經常用git來面對這個問題: 我克隆了一些項目的git倉庫。然後我修改了一些源文件,但我沒有提交,因爲我的工作不完整。但我必須不斷更新我的回購庫,才能使其與主人同步。所以我做了一個'git pull',這樣我的倉庫是最新的,所以我可以針對最新的倉庫生成我的補丁。 現在假設我在我的本地克隆(尚未提交)中編輯文件hello.c,並且其他人對同一文件進行了更改並將其提交給主庫。現在,當我做'git pull'時,其他人的更改將添加到hello.c,並且我所做的更改將被刪除。這顯然是自然的行爲。 有沒有辦法告訴混帳只'添加'的變化,而不是'減'任何東西?或者有什麼影響?我不希望在執行git pull時刪除我的更改,但也希望使用最新的存儲庫。git選項只添加或僅減去更改

+3

所以提交你的代碼。你爲什麼不做本地提交?你必須在拉動之前做到這一點。 – 2012-03-20 04:47:27

+1

在分支上工作,以便您的工作不會受到主代碼行上發生的情況的影響,直到您決定要將其影響爲止? – 2012-03-20 05:28:54

+0

也讀這個主題 - [有什麼區別git拉和git獲取?](http://stackoverflow.com/questions/292357/whats-the-difference-between-git-pull-and-git-fetch) – 2012-03-20 05:44:40

回答

1

第二個命令,這將從遠程服務器 是git pull取下來的新數據。這個命令基本上會立即運行一個git fetch,然後在該遠程上執行一個git merge,然後通過你正在使用的任何分支來跟蹤 。我個人不太喜歡 這個命令 - 我更喜歡運行讀取和合並seperately。減少 魔法,減少問題。

從未報價做對即出現上拉冒號右側 手側枝自己的開發:線;他們將被git fetch更新爲 。如果您打算從分支B的遠程 獲得開發,則有一條Pull:線來跟蹤它(即Pull:B:remote-B),並且 有一個單獨的分支 my-B在頂部進行開發的。